前回の3.0.0のリリースから一ヶ月くらい過ぎました。今回は3.1.0をリリースします。
今回の3.1.0のリリースでは、新機能の追加とバグ修正です。
本家のMetroRadianceとmntoneさんのアクティビティ
このバージョンでも、本家のMetroRadiance
の修正やmntoneさんの修正は取り込んでいません。なぜなら、前回からの今回のバージョンの間に、新たな修正のコミットがなかったからです。
前々回の投稿(2020年12月)で、mntoneさんのコミットが2020年9月4日で止まったことをお伝えしました。それから、新たなコミットはありません。
そのため、今回も、コミットの取り込みではなく、新しい機能の追加とバグ修正をしました。
ネットワーク グラフ
2021年6月時点で、2020年2月から6月中旬までのMetroRadianceのレポジトリに関するアクティビティは以下の通りです。
ネットワーク グラフを見ると、前回のリリース(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) |
---|---|---|
ComboBox | MetroRadiance.Styles.ComboBox | MetroRadianceComboBoxStyleKey |
ContextMenu | MetroRadiance.Styles.ContextMenu | MetroRadianceContextMenuStyleKey |
GroupBox | MetroRadiance.Styles.GroupBox | MetroRadianceGroupBoxStyleKey |
Label | MetroRadiance.Styles.Label | MetroRadianceLabelStyleKey |
Menu | MetroRadiance.Styles.Menu | MetroRadianceMenuStyleKey |
MenuItem | MetroRadiance.Styles.MenuItem | MetroRadianceMenuItemStyleKey |
TextBoxBase | MetroRadiance.Styles.TextBoxBase | MetroRadianceTextBoxBaseStyleKey |
今後、機能追加などで新しいキー名を追加するときは、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のリリースの紹介でした。
“WPFアプリでライトテーマ・ダークテーマに対応するライブラリー#9 3.1.0” への1件の返信