こんばんは、Subaruと申します。
現在起きている問題について、より良い対応方法を皆様に
ご教授して頂きたく、書き込みさせて頂きました。
起きている問題:
WindowsXP SP3においてWPFのLabel、TextBlockで文字化けが起きる。
(1バイト、2バイト文字関係無く「□」で表示されます。)
開発環境:
Windows7 Professional
Visual Studio 2008 Standard
.NET Framework 3.5
C#
現在分かっていること:
原因は分かりませんが、LabelやTextBlockの代わりに
Glyphsを使用すると文字化けが起きないことは確認しております。
対応方法:
すべてのLabelやTextBlockをGlyphs(もしくはGlyphsをラップしたコントロール)に置き換える。
しかし、今後の開発でLabelやTextBlockを使用できないのは不便に感じます。
皆様は、どのように対応を行いますでしょうか。
ご教授頂ければ幸いです。
--------------------- 実験を行ったソース ------------------------------
<Window x:Class="WordTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="文字化け確認" Height="300" Width="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" FontSize="20">No.1</Label>
<Glyphs Grid.Column="1" Grid.Row="0" Fill="Black" FontUri="meiryo.ttc" UnicodeString="犬です" FontRenderingEmSize="20"></Glyphs>
<Label Grid.Column="0" Grid.Row="1" FontSize="20">No.2</Label>
<Label Grid.Column="1" Grid.Row="1" FontSize="20">猫です</Label>
<Label Grid.Column="0" Grid.Row="2" FontSize="20">No.3</Label>
<TextBlock Grid.Column="1" Grid.Row="2" FontSize="20">鳥です</TextBlock>
</Grid>
</Window>