WPF 文字列リソースをXamlから利用する

[WPF Tips]

WPF アプリケーション作成で得たTipsをメモ

 

1.状況

XAMLから、リソースに設定した文字列を使用したい。

2.対応

2.1 アプリケーションのPropertiesの配下に、Resource.resx が存在する。

wpf_resourece_xaml01

2.2 App.xaml を編集し、Application.Resource に resource エントリーを追加

xmlns:prperties 要素も追加

<Application x:Class="DSMoviePlayer.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:vm="clr-namespace:DSMoviePlayer.ViewModel"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:ignore="http://www.galasoft.ch/ignore"
             StartupUri="MainWindow.xaml"
             xmlns:properties="clr-namespace:{アプリケーション名}.Properties"
             mc:Ignorable="d ignore">
    
    <Application.Resources>
        <!--Global View Model Locator-->
        <vm:ViewModelLocator x:Key="Locator"
                             d:IsDataSource="True" />
        <properties:Resources x:Key="resources" />
    </Application.Resources>
    
</Application>

2.3 文字列リソースのアクセス修飾子を Public にする

wpf_resourece_xaml02

2.4 バインドしたい項目のプロパティ(今回はWindow.Title)から、データバインドの作成を選択

wpf_resourece_xaml03

2.5 ダイアログで追加した、App.xaml -resources を選択、カスタムにチェックを入れ、パスに文字列リソースのキーを入力

wpf_resourece_xaml04

以下のようなコードが自動生成される。

    <Window.Title>
        <Binding Path="APP_TITLE" Source="{StaticResource resources}"/>
    </Window.Title>

2.6 表示される

wpf_resourece_xaml05

めでたし。