.NET5.0 の WPF App - Bind、UWPやWindowsForms APIの利用2021年02月20日 16:31

LogoVistaの辞書アプリを利用しているが、ブラウザの文書からコピーして、貼り付けて、検索ボタンを押す、という一連の作業が、少々面倒。手間を省くために、UI Automationを利用してみようと、WPFアプリに着手。

WPF App

プロジェクトを追加しようとダイアログを開くと、.NET Framework用のWPFと、.NET用のWPFが出てくる。後者は、.NET5.0からのもの。UWPの改善点がフィードバックされているとのことで、後者を選んでみる。

Binding

まずは、便利だけど、いつも悩ましいBind。"x:Bind"は使えない。

DataContextの設定

ただし、ListViewなどにCollectionをBindするのに、XAMLにCollectionViewSourceの定義は、必ずしも要らなくなった。コードで、ListViewなどのDataSourceを設定すれば済む。このあたり、MSの文書にもいろいろあるが、このやり方が素直に思う(L81~)。

Resorucesの参照

次に、Resourcesの参照。UWPのx:UidでLocalizationも含めて対応、というのはまだ。ただ、"x:Static"で簡単に参照できるようになっている。

プロジェクトの定義

UWP APIの利用方法も進化中。これまでは、プロジェクトの参照に各種設定していたが、プロジェクトの定義に一行追加するだけでよくなった。"<TargetFramework>"の箇所。ただし、Windows10 1809以上の対応になる。また、GUIで設定はできない。

WindowsForms APIの利用

同じように、WindowsForms APIの利用は、"<UseWindowsFroms>"を設定する。これなしでは、Build時に名前解決に失敗する。SendKeysの利用で嵌まった。

GUIのプロジェクト定義

なお、これらの設定をすると、プロジェクト定義のGUIのフレームワークの箇所は、未選択状態になる。

MergedDictionaries

他には、"MergedDictionaries"の定義ができるようになった。これで、Styleの定義などがやりやすくなる。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://c5d5e5.asablo.jp/blog/2021/02/20/9349073/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。