.NET アプリで MRT Core を使用してリソースを管理する

この記事では、.NET アプリでWindows アプリ SDKから MRT Core 機能を使用する方法の非常に簡単な例を示します。 機能の詳細については、「 MRT Core を使用したリソースの管理 」を参照してください。

前提条件

  • WPFまたは WinForms アプリ プロジェクト。
  • 次のようにプロジェクトを構成する必要があります。
  1. MainWindow.xaml に次のマークアップを追加します (ルートの Grid 内に貼り付けることができます)。

    <StackPanel>
        <Button HorizontalAlignment="Center" Click="Button_Click">Click me!</Button>
        <TextBlock HorizontalAlignment="Center" x:Name="myTextBlock">Hello, World!</TextBlock>
    </StackPanel>
    
  1. (Form1.cs コマンドを使用して) を開き、[ツールボックス]から、[ボタン][ラベル] をデザイナーにドラッグします。
  1. 次に、Windows アプリ SDKの ResourceManager クラスを使用して文字列リソースを読み込むコードを追加します。

    1. 新しいリソース ファイル (.resw) 項目をプロジェクトに追加します (既定の名前である Resources.resw をそのまま使用します)。

      (クリックプロジェクト 新しい項目の追加..., C# 項目 WinUI リソースファイル (.resw), 追加)

    2. エディターでリソース ファイルを開き、+ 記号をクリックして、次のプロパティを使用して新しい文字列リソースを作成します。

      • 名前: Message
      • 値: Hello, resources!
    3. リソース ファイルを保存して閉じます。

  1. MainWindow.xaml.cs に、次のイベント ハンドラーを追加します。

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        // Construct a resource manager using the resource index generated during build.
        var manager = 
          new Microsoft.Windows.ApplicationModel.Resources.ResourceManager();
    
        // Look up a string in the resources file using the string's name.
        myTextBlock.Text = manager.MainResourceMap.GetValue("Resources/Message").ValueAsString;
    }
    
  1. [button1] をダブルクリックして、イベント ハンドラーを生成します。 (Form1.cs コマンドを使用して) を開き、次のようにイベント ハンドラーを編集します。

    private void button1_Click(object sender, EventArgs e)
    {
        // Construct a resource manager using the resource index generated during build.
        var manager =
            new Microsoft.Windows.ApplicationModel.Resources.ResourceManager();
    
        // Look up a string in the resources file using the string's name.
        label1.Text = manager.MainResourceMap.GetValue("Resources/Message").ValueAsString;
    }
    
  1. プロジェクトをビルドし、アプリを実行します。 ボタンをクリックすると、"Hello, resources!" という文字列が表示されます。