rksoftware

Visual Studio とか C# とかが好きです

Xamarin.Forms.WPF でアプリケーション設定ファイルに設定をする

以前の記事で Xamarin.Forms.WPF でデスクトップアプリを作成しました。

このデスクトップアプリで設定ファイルによる設定機能を追加してみます。

■ 普通の WPF アプリ

Xamarin.Forms.WPF は出来上がるアプリの形式としては、普通の WPF アプリです。
つまり、ビルドして生成されるバイナリは .exe ファイルです。

※bin フォルダ内のバイナリ(抜粋)
f:id:rksoftware:20180627031234j:plain

普通の .exe ということは普通に .exe.config ファイルもいます。
bin フォルダを確認してみると実際に .exe.config が存在することが確認できます。

■ 設定

というわけで、App.config ファイルに設定を追加してみます。

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  ・・・中略・・・

  <applicationSettings>
    <XFWPF.WPF.Properties.Settings>
      <setting name="Setting_A" serializeAs="String">
        <value>設定値</value>
      </setting>
    </XFWPF.WPF.Properties.Settings>
  </applicationSettings>
</configuration>

■ 設定の読み込み

本来であれば DependencySearvice などを利用したプラットフォーム機能の呼び出しとして実装するところです。
今回は設定ファイルの確認ということで、手短に直接呼び出してみます。
MainWindow.xaml.cs ファイルに

System.Windows.MessageBox.Show(XFWPF.WPF.Properties.Settings.Default.Setting_A);

と、設定ファイルを読んでメッセージボックスを表示するコードを追加します。
追加後の MainWindow.xaml.cs は次の言うになります。

namespace XFWPF.WPF
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Xamarin.Forms.Platform.WPF.FormsApplicationPage
    {
        public MainWindow()
        {
            InitializeComponent();

            System.Windows.MessageBox.Show(XFWPF.WPF.Properties.Settings.Default.Setting_A);

            Xamarin.Forms.Forms.Init();
            LoadApplication(new XFWPF.App());
        }
    }
}

■ 実行

実行してみます。
f:id:rksoftware:20180627031249j:plain

とても地味な絵面ですが、設定ファイルの内容が読めています。
設定ファイルも使えるということで、Xamarin.Forms.WPF が普通にデスクトップアプリ開発に使える期待がまた一つ高まりました。