|
■レンダリングペインで「オーバーレイ」指定時に、
背景を透明にするオプションを付けてはどうか? という案です。
■まず技術的に可能なのか?
→ 安易に可能
→ https://github.com/komiyamma/hm_renderpane_overlay_transparent_mode?tab=readme-ov-file
→ https://github.com/komiyamma/hm_renderpane_overlay_transparent_mode/blob/main/ClassLibrary5/ClassLibrary5/Class1.cs
■PreferredColorSchemeと同様に危険では?
PreferredColorScheme とは異なり、背景の透過は
「WebView インスタンスに直接ぶら下がる DefaultBackgroundColor への
設定」であるため、
おそらくインスタンスごとにバラバラに設定しても安全。
(※追記)
PreferredColorScheme の時の問題は、
「秀丸は1つのユーザープロファイルデータ」から「複数のWebView2インスタンス」を作成するシーンが、秀丸にあることが原因と思われる。
「一部のインスタンスだけ darkモードに設定」した箇所があったのではないかと思われる。
(即ち、1つのユーザーデータプロファイルでlightモードのWebViewインスタンスとデータモードのWebViewインスタンスを混ぜて作成しようとしているシーンがあったハズ)
「秀丸本体がダークモード」の時、「秀丸マクロのWebView2用」「個別ブラウザ用」「共有ブラウザ用」「レンダリング枠用」(他もしあるなら)
「これら全て」に対して「ダークモード(PreferredColorScheme=dark)」の設定をすれば恐らく大丈夫と思われる。
逆に言えば、「ユーザープロファイルデータが同一のものを参照している、複数のインスタンス」に対して、「一部インスタンス」だけ「ダークやライトを切り替える」
といったことは出来ないと思われる。
これはWebView2のバグではなくて、仕様の模様。
■指定の仕方
renderpanecommand({
...
place: "overlay",
bgcolor: "transparent", // overlayの時だけ指定有効
});
など
|
|