|
■ブラウザ枠やレンダリング枠の(ダークモード|ホワイトモード)を秀丸の本体と合
わせては?
・今は秀丸は秀丸で「既定のアプリがダークモード && 「秀丸の設定のダーク
モード」で、
「両方がダークモード」の時だけダークモード
・一方、ブラウザ枠やレンダリング枠は、「既定のアプリがダークモード」だと、
そのまま「ダークモード」→秀丸が何も制御していなくともWindowsがWebView2
コンポーネントに伝搬しているのでそうなっている。
(次のブラウザコンポーネントとダークモードの話へと続く)
・結論:「秀丸本体の通常モード・ダークモード」の値に合わせて
webView.CoreWebView2.Profile.PreferredColorScheme = Microsoft.Web.WebVie
w2.Core.CoreWebView2PreferredColorScheme.Light;
or
webView.CoreWebView2.Profile.PreferredColorScheme = Microsoft.Web.WebVie
w2.Core.CoreWebView2PreferredColorScheme.Dark;
を切り替え設定しては? といった話し。
■ブラウザコンポーネントとダークモード
これは厳密には秀丸の話ではなく、「WebView2のコンポーネントとHTML/CSS」の話で
すが、
一番下に示しているHTMLをブラウザ枠で「以下のA,B、Cの3通り」でひらいてみ
てください。
Cの時に、秀丸本体とブラウザ枠の色が「本体はライト」「コンポーネントはダー
ク」とずれています。
(これをちゃんとWebView2に秀丸本体のカラー情報を伝達して合わせては?という話)
A-@ 秀丸はダークモードでチェック
-A Windowsで「個人設定」の「色」の「既定のアプリ色」を「ダークモード」にする
以上で、秀丸もブラウザ枠も「両方ダークモード」
B-@ 秀丸はダークモードにチェックが入っていない
-A Windowsで「個人設定」の「色」の「既定のアプリ色」を「ライトモード」にする
以上で、秀丸もブラウザ枠も「両方ライトモード」
C-@ 秀丸はダークモードにチェックが入っていない
-A Windowsで「個人設定」の「色」の「既定のアプリ色」を「ダークモード」にする
以上で、秀丸はライトモードだが、ブラウザ枠はダークモード (★ここで秀丸と
ブラウザ枠に「状況把握」の食い違いが起こる)
■ブラウザ枠(やレンダリング枠)はWebView2コンポーネントであるから、秀丸とは無
関係に
そのコンポーネント自体がダークモードかどうかのレンダリング情報を持っている
<!DOCTYPE html>
<html>
<head>
<title>ダークモードはブラウザ枠やレンダリング枠でも有効</title>
<style>
@media (prefers-color-scheme: light) {
body {
background-color: #fff;
color: #222;
}
}
@media (prefers-color-scheme: dark) {
body {
background-color: #222;
color: #eee;
}
}
</style>
</head>
<body>
<h1 id="kami">色...</h1>
<script>
let kamiEle = document.getElementById("kami");
// 今レンダリングしてるブラウザコンポーネントはダークモードなの?
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: d
ark)').matches) {
kamiEle.innerText = "ダークモード";
} else {
kamiEle.innerText = "ホワイトモード";
}
</script>
</body>
</html>
|
|