C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: (WPF)LavelやTextBlockでの文字化け


(過去ログ 82 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■48363 / inTopicNo.1)  (WPF)LavelやTextBlockでの文字化け
  
□投稿者/ Subaru (1回)-(2010/04/03(Sat) 18:58:04)

分類:[.NET 全般] 

2010/04/03(Sat) 19:14:07 編集(投稿者)
こんばんは、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>

引用返信 編集キー/
■48366 / inTopicNo.2)  Re[1]: (WPF)LavelやTextBlockでの文字化け
□投稿者/ やじゅ (1583回)-(2010/04/03(Sat) 19:31:04)
やじゅ さんの Web サイト
No48363 (Subaru さん) に返信

WindowsXP SP3においてWPFのLabel、TextBlockで文字化けが起きる。

文字化けで疑うのは、文字コードです。
WPFは、UTF-8になっている必要があるみたい。

また、xml:lang="ja-JPを追加してみるとか
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xml:lang="ja-JP">

引用返信 編集キー/
■48385 / inTopicNo.3)  Re[2]: (WPF)LavelやTextBlockでの文字化け
□投稿者/ Subaru (2回)-(2010/04/04(Sun) 14:45:30)
やじゅさん、ご教授ありがとうございます。

ソースやXAMLの文字コードはUTF-8でした。
また、xml:lang="ja-JP"もXAMLに追加してみましたが、
文字化けは直りませんでした。

この問題は、自分が作ったソフトを使用している一人のユーザーさんの
パソコンで起きる現象で、自前で再現できなかったのですが、昨日今日
実験してやっと再現が出来ました。

再現方法:
 コントロールパネルのフォントからmsgothic.ttc以外のTrueTypeのフォントを
 すべて抜いて再起動。
 その後、msgothic.ttcを抜いて、実験用ソースのexeを実行するとGlyphs以外の
 文字が□になる。

ただ、そんな面倒なことをするとは考えにくいので、フォントキャッシュが
おかしいのかなと思っています。

引用返信 編集キー/
■48387 / inTopicNo.4)  Re[3]: (WPF)LavelやTextBlockでの文字化け
□投稿者/ Subaru (3回)-(2010/04/04(Sun) 19:49:49)
フォントキャッシュの削除、その後再起動を行ったところ
正常に表示されるようになりました。

お手数お掛け致しました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -