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

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

前回の3.0.0-alpha02のリリースでは、mntoneさんが本家のMetroRadianceにプルリクエストしている変更を取り込みました。今回、本家のMetroRadianceにプルリクエストしていない変更を取り込みました。

mntoneさんのアクティビティ

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

それから、3か月間、

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

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

ただ、見守るといっても、私も別件が忙しかったため、本当に変化がないか見ていただけで、私自身も新たなコミットは作成できていませんでした。

12月に入り、私もMetroRadiance.Forkにたいして、少し時間を取ることができるようになりました。

そこで、本家のMetroRadianceへのプルリクエストを待たず、mntoneさんの修正を取り込むことにしました。

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

ネットワーク グラフ

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

MetroRadianceのInsight 9月分まで (Network, 2020/12/20)

mntoneさんのコミットは、2020年9月4日のコミットを最後に、新たなコミットはありません。ただ、mntoneさんのブランチの線が右にのびています。これはmntoneさんのコミットをMetroRadiance.Forkに取り込んだことによる線であり、mntoneさんの新たな活動ではありません。

実際、ネットワークグラフの続き(2020年12月まで)を確認すると、下記のように、MetroRadiance.Forkのレポジトリ(nishy2000)への取り込みのつながりであることがわかります。

MetroRadianceのInsight (Network, 2020/12/20)

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

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

mntoneさんのプルリクエスト化していないコミット

2020年12月20日時点で、コミットされているのにプルリクエスト化していないコミットがいくつかありまりました。

  • プロジェクトをSDKスタイルに変更
  • コードを近代化
  • メニュースタイルの追加
  • 高DPIサポート

などのコミットです。

一つ目は、MetroRadiance.Forkと同じように、従来形式のプロジェクトファイルから.NET Coreに対応したSDKスタイルのプロジェクトファイルへの変更です。

二つ目は、最新のC#の文法でソースコードを修正するものです。

三つ目は、メニューに対するスタイルの追加です。これにより、メニューのデザインもThemeのモード切替に追随するようになります。

四つ目は、高DPI対応です。

今回のリリースでは、これらを取り込みます。動作を確認しつつ、不具合があれば、それを修正して取り込みました。

MetroRadiance.Fork 3.0.0-alpha03 リリース

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

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

MetroRadiance.Fork 3.0.0-alpha03の新機能

このバージョンでは以下の機能を追加しました。

  • MenuおよびMenuItemコントロールのスタイルを追加
  • 高DPI対応のクラスの追加
  • 高DPI対応の内部的な実装の変更

メニューのコントロールのスタイルを追加

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

高DPI対応のクラスの追加

MetroRadiance.Platform.DpiHelperクラスを追加しました。PerMonitorの高DPIにも対応したDpiヘルパークラスとなります。今まで存在したMetroRadiance.Interop.PerMonitorDpiクラスは、互換性のために残しています。この旧クラスは、メソッド名やメソッドの説明などが高DPI対応としては適切でないため、今後は利用しないでください。

高DPI対応の内部的な実装の変更

内部的な実装も、MetroRadiance.Interop.PerMonitorDpiクラスを使った実装から、MetroRadiance.Platform.DpiHelperクラスを使った実装に変更しました。また、カスタムWindow系のクラス(MetroWindow/BlurWindow/AcrylicBlurWindowクラス)の高DPI対応の実装が統一されていなかったため、共通な実装とすることにより、同じ振る舞いになりました。

サンプリアプリ(Showcase)

今回の機能の追加に合わせて、いくつかの実装サンプルを追加しました。今回はメニューのテーマ適用例を追加しました。


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

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

コメントを残す