WPFアプリでライトテーマ・ダークテーマに対応するライブラリー#9 3.1.0

前回の3.1.0のリリースから一ヶ月くらい過ぎました。今回は3.1.0をリリースします。

今回の3.1.0のリリースでは、新機能の追加とバグ修正です。

本家のMetroRadianceとmntoneさんのアクティビティ

このバージョンでも、本家のMetroRadianceの修正やmntoneさんの修正は取り込んでいません。なぜなら、前回からの今回のバージョンの間に、新たな修正のコミットがなかったからです。

前々回の投稿(2020年12月)で、mntoneさんのコミットが2020年9月4日で止まったことをお伝えしました。それから、新たなコミットはありません。

そのため、今回も、コミットの取り込みではなく、新しい機能の追加とバグ修正をしました。

ネットワーク グラフ

2021年6月時点で、2020年2月から6月中旬までのMetroRadianceのレポジトリに関するアクティビティは以下の通りです。

MetroRadianceのInsight 2021年6月分まで (Network, 2021/6/13)

ネットワーク グラフを見ると、前回のリリース(2021/3/10)の2021年3月中旬以降に、私以外ののアクティビティ(活動)がないことがわかります。

そのため、今回のリリースでは他の人のコミットを取り込むことはありませんでした。

MetroRadiance.Fork 3.1.0リリース

前回のバージョンから、現在までの機能拡張を反映した、MetroRadiance.Fork 3.1.0をnutgetでリリースしました。nugetでは、ここから取得できます。

2021年6月15日 追記: 3.1.0では、アプリ起動時に例外が発生することがありました。そのため、それを修正した3.1.1をリリースしてます。3.1.0ではなく、3.1.1を利用してください。nugetでは、ここから取得できます。

今回のリリースは、プレリリース版ではなく、正式版です。(バージョンにalphaをつけていません)。

前回同様、MetroRadiance.Forkのドキュメントは以下のリンクとなります。

MetroRadiance.Fork 3.1.0の新機能・変更点

このバージョンでは機能の追加とバグ修正をしました。

大きな変更

  • MetroRadiance.Fork 3.0で追加されたスタイルキー名を変更

新機能

  • DataGridコントロールのスタイルを追加
  • DataGridコントロール用の添付プロパティ(Attached Property)を追加

バグ修正

  • #1 – System.Windows.WindowでToolTipを表示するときにXAMLエラーが発生する
  • #2 – Bug: ComboBoxの外観とUWPブラシがテーマの動的変更に追随しないことがある

大きな変更

MetroRadiance.Fork 3.0で追加されたスタイルキー名を変更

MetroRadiance.Fork 3.1では、MetroRadiance.Fork 3.0で追加したスタイルのスタイルキー名を変更しました。ライブラリーを利用しているアプリでスタイルキー名を直接参照している場合は、アプリ側の修正が必要になります。

コントロール新キー名 (Ver. 3.1)旧キー名 (Ver. 3.0)
ComboBoxMetroRadiance.Styles.ComboBoxMetroRadianceComboBoxStyleKey
ContextMenuMetroRadiance.Styles.ContextMenuMetroRadianceContextMenuStyleKey
GroupBoxMetroRadiance.Styles.GroupBoxMetroRadianceGroupBoxStyleKey
LabelMetroRadiance.Styles.LabelMetroRadianceLabelStyleKey
MenuMetroRadiance.Styles.MenuMetroRadianceMenuStyleKey
MenuItemMetroRadiance.Styles.MenuItemMetroRadianceMenuItemStyleKey
TextBoxBaseMetroRadiance.Styles.TextBoxBaseMetroRadianceTextBoxBaseStyleKey
Ver. 3.1でのスタイルキー名の変更

今後、機能追加などで新しいキー名を追加するときは、MetroRadiance.から始まるキー名を使用します。

Ver. 2.xのころから存在するスタイルキー名は変更していません。将来的には、同じ形式に変更する可能性があります。

新機能

DataGridコントロールのスタイルを追加

MetroRadiance.Forkが用意していたコントロールのスタイルは、一部の標準コントロールのみです。今回、DataGridのスタイルを追加しました。MetroRadiance.Forkで用意しているコントールのスタイルは、テーマのモード変更(ライト、ダーク)やアクセントカラーの変更に追随します。

DataGridに関連するDataGridRow / DataGridRowHeader / DataGridColumnHeader / DataGridCell などのコントールのスタイルも追加しました。また、DataGridTextColumn / DataGridCheckBoxColumn / DataGridComboBoxColumn のDataGridColumn系の依存関係オブジェクト(Dependency Object)のためのElementStyle / EditingElementStyle も追加しました。

DataGridコントロール用の添付プロパティ(Attached Property)を追加

DataGridTextColumn / DataGridCheckBoxColumn / DataGridComboBoxColumn のDataGridColumn系のエレメントは、FrameworkElementから派生しておらず、依存関係オブジェクト(Dependency Object)から直接派生しています。

FrameworkElementでないためスタイルプロパティが利用でず、既定スタイルを変更することができません。

そのため、これらのエレメントを使うときに、既定スタイル以外のスタイルを利用するときは必ずElementStyle / EditingElementStyleを設定する必要があります。 このライブラリーでは既定スタイルをテーマに合わせて変更する必要があります。しかし、この制限のためクライアントアプリ側で毎回ElementStyle / EditingElementStyleを設定してもらう必要が出てきます。

これではクライアントアプリ側での使い勝手が悪いため、DataGridコントロールでこれらの既定スタイルを設定できるように、添付プロパティを追加しました。これにより、DataGridの既定スタイルでDataGridColumn系エレメントのスタイルを設定できるようなります。クライアントアプリ側でElementStyle / EditingElementStyleを設定する必要がなくなりました。

MetroRadiance.Fork内で使用するため用意した添付プロパティですが、一般の用途にも利用できる思い、この添付プロパティを外部から利用できるようにしました。

バグ修正

#1 – System.Windows.WindowでToolTipを表示するときにXAMLエラーが発生する

Yuku1Aさんが報告してくれました。Visual Studio 2019(16.8.4)でデバッグしているときにツールチップを表示しようとすると、XAMLのバインドエラーが表示されるとのことです。デバッグ環境でないと確認できない問題です。

#2 – Bug: ComboBoxの外観とUWPブラシがテーマの動的変更に追随しないことがある

MetroRadiance内で定義していたブラシがテーマの動的変更に追随して変化しないことがありました。ComboBoxは、そのブラシを使用していたため、ComboBoxの外観も変化しない状態になっていました。ブラシがテーマの動的変更に追随するように修正しました。

サンプリアプリ(Showcase)

今回の機能の追加に合わせて、実装サンプルを追加しました。今回はDataGridの例を追加し、テーマ適用例を確認できるようにしました。


以上、MetroRadiance.Fork 3.1.0のリリースの紹介でした。

コメントを残す