WPFアプリでライトテーマ・ダークテーマに対応するライブラリー#7 3.0.0-alpha04

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

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

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

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

前回の投稿(2020年12月)で、mntoneさんのコミットが2020年9月4日で止まったことをお伝えしました。

それから、1か月間、引き続き

  • コミット済みの修正が本家のMetroRadianceにプルリクエストされること
  • 新たなコミットが追加されること

がないかを見守っていました。しかし、この間に、アップデートされることはありませんでした。

ただ、見守る間に、私はMetroRadiance.Forkに対して少し時間が取れたので、機能の追加とバグ修正をしていました。

mntoneさんの活動は素晴らしいため、引き続きmntoneさんのMetroRadianceフォークをウォッチしています。

ネットワーク グラフ

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

MetroRadianceのInsight 2021年1月分まで (Network, 2021/1/28)

mntoneさんのコミットは、2020年9月4日が最後なので、グラフにはコミットの履歴は表示されていません。

mntoneさんのブランチの線が右にのびています。これはmntoneさんのコミットを12月にMetroRadiance.Forkのレポジトリ(nishy2000)へ取り込んだことによる線であり、mntoneさんの新たな活動ではありません。

ネットワーク グラフをよく見ると、2020年11月下旬以降にrmbadminさんのアクティビティ(活動)が定期的にあることがわかります。

このアクティビティは、今回のリリースでは事前に確認していませんでした。後日内容を確認し、有益なコミットであれば、MetroRadiance.Forkの次回のリリース以降に取り込みたいと思います。

MetroRadiance.Fork 3.0.0-alpha04 リリース

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

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

MetroRadiance.Fork 3.0.0-alpha04の新機能

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

  • MetroRadianceで定義するコントロールのスタイルにスタイルキーを追加
  • GroupBoxコントロールのスタイルを追加

バグ修正は

  • BlurWindow と AcrylicBlurWindowの初期化に失敗する
  • コンテキストメニューの背景色が適切でない
  • メニュー・コンテキストメニューのチェック状態の表示がクリップされる
  • メニュー・コンテキストメニューの選択状態の表示の改善

となります。

MetroRadianceで定義するコントロールのスタイルにスタイルキーを追加

いままで、MetroRadianceで定義するコントロールのスタイルは、常に標準コントロールのデフォルトスタイルとして適用するのみで、スタイルキーは定義していませんでした。そのためMetroRadianceのスタイルを特定のコントロールのみに個別に適用することはできませんでした。

今回のバージョンから、MetroRadianceで定義するコントロールのすべてのスタイルにスタイルキーを定義しました。このスタイルキーを使うことにより、特定のコントロールのみにMetroRadianceのスタイルを適用することが可能となりました。

MetroRadianceで定義するスタイルキーの値は、MetroRadianceButtonStyleKeyのように、すべて”MetroRadiance”から始まります。

また、今まではResourceDictionaryとして以下のようにControls.xamlを読み込むと、標準コントロールのスタイルのデフォルトスタイルがMetroRadianceで定義したスタイルになりました。

<ResourceDictionary Source="pack://application:,,,/MetroRadiance;component/Styles/Controls.xaml" />

今回のバージョンでは、標準コントロールのデフォルトスタイルを変更しないで、スタイルキーだけを定義するResourceDictionaryを用意しました。Control-styles.xamlです。これを読み込んだ場合は、スタイルキーを定義するだけで、標準コントロールのデフォルトスタイルは変更しません。

<ResourceDictionary Source="pack://application:,,,/MetroRadiance;component/Styles/Control-styles.xaml" />

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

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

バグ修正

BlurWindow と AcrylicBlurWindowの初期化に失敗する

前回のバージョンでカスタムWindow系のクラス(MetroWindow/BlurWindow/AcrylicBlurWindowクラス)の高DPI対応の実装を見直し、共通化しました。しかし、BlurWindowとAcrylicBlurWindowに実装にミスがあり、初期化に失敗する問題がありました。それを修正しました。

コンテキストメニューの背景色が適切でない

コンテキストメニューの背景色がテーマに沿った色になっていなかったため修正しました。

メニュー・コンテキストメニューのチェック状態の表示がクリップされる

メニューやコンテキストメニューのメニュー項目の先頭にはチェック状態を表示することができます。その表示位置が適切でなく、チェック状態の表示の一部がクリップされていたので、レイアウトを調整しました。

メニュー・コンテキストメニューの選択状態の表示の改善

メニュー項目にマウスポインターを持っていくと、メニュー項目がハイライト表示になります。メニュー項目の先頭にアイコンやチェック状態の表示している場合のハイライト表示を改善しました。

サンプリアプリ(Showcase)

今回の機能の追加に合わせて、いくつかの実装サンプルを追加しました。今回はメニュー・コンテキストメニューの例の充実、GroupBoxの例を追加し、テーマ適用例を確認できるようにしました。


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

“WPFアプリでライトテーマ・ダークテーマに対応するライブラリー#7 3.0.0-alpha04” への1件の返信

コメントを残す