前回の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のレポジトリに関するアクティビティは以下の通りです。
mntoneさんのコミットは、2020年9月4日のコミットを最後に、新たなコミットはありません。ただ、mntoneさんのブランチの線が右にのびています。これはmntoneさんのコミットをMetroRadiance.Fork
に取り込んだことによる線であり、mntoneさんの新たな活動ではありません。
実際、ネットワークグラフの続き(2020年12月まで)を確認すると、下記のように、MetroRadiance.Fork
のレポジトリ(nishy2000)への取り込みのつながりであることがわかります。
ネットワーク グラフをよく見ると、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件の返信