WPF 文字列の入ったResourceDictionary.xamlファイルをテキストファイルのまま同梱する方法
WPFのResourceDictionaryに文字列を追加することも可能らしい.
ResourceDictionaryを記述するxamlファイルは,普通はビルドの時にアッセンブリファイルにくっつける。
このとき,WPFのリソースを提供する場合にはxamlファイル(テキストファイル)のまま提供することもできるみたい。
ResourceDictionaryを記述するxamlファイルは,テキストファイルのまま同梱できるらしいのだ。
xamlファイルのビルドアクションをコンテンツに直して出力ディレクトリにコピーする。
そして,例えばリソースに以下のように追加するだけ。
(この場合には出力ディレクトリをルート(/)として/Resoures/Resources.xamlにコピーされるファイルをResourceDictionaryとして読み込み)
<Window.Resources> <ResourceDictionary Source="/Resources/Resources.xaml" /> </Window.Resources>
ウインドウのリソースに書いているとウインドウが生成されると時に読まれる。
このようにしておくとビルド環境がない場合にも文字列だけはその場でなおせる(かな)。
(※文字列だけでなく,通常のResourceDictionary.xamlの記述内容なら変更可能なので言語によって文字列を変えるだけでなく言語を変えたところ同じ意味を表す文字列の長さが変わった場合にそれを収めるBorderのサイズを変えるとか文字サイズを変えるとか絵やアイコンをかえるとかも一応可能)
画像ファイルについては単独でアッセンブリファイルに同梱できる。 以下の例では/Resouces/sample1.pngにファイルを入れている。
<TextBlock Text="{DynamicResource test_string1}"> <TextBlock.Background> <ImageBrush ImageSource="/Resources/sample1.png"/> </TextBlock.Background> </TextBlock>
タグ:WPF