[ 新規に投稿する ]

renderpaneでoverlayの時、背景透明オプNo.10542
こみやんま さん 25/02/11 18:49 [ コメントを投稿する ]
  ■レンダリングペインで「オーバーレイ」指定時に、
 背景を透明にするオプションを付けてはどうか? という案です。


■まず技術的に可能なのか?

 → 安易に可能
 →    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の時だけ指定有効
});

など
[ ]
RE:10542 renderpaneでoverlayの時、背景透明オプNo.10543
western さん 25/02/12 05:18 [ コメントを投稿する ]
  透明化ネタが出たので便乗

WebView2の半透明(文字が画像も半透明)と、背景部分の透過の指定 (これらは別の機能)が利用可能であれば、
自作のマクロの本来のUI/UXを実現するのに期待する機能となります。

以前にもここで動画(https://youtu.be/J3mxeuLKwk4)を共有したことありますが、
本来は MetaGo という VSCode の拡張機能と同じような見せ方でやりたいのです
現在は動画を見ての通りの、限定的で副作用のあるロジックで実現させています


また他のスレッドでも部分編集ネタが出ていましたが部分編集の機能についてですが

部分編集の半透明が、視力の問題か非常に見づらく使いづらいので
半透明にする色と透過度を指定できるようにならないか? という要望です。
元のカラーリングを残しつつ、グレーアウトというのは非常に嬉しい見え方なのですが
それが見づらいと半透明を使っても嬉しさよりストレスになってしまって痛し痒しという状況です

指定可能なオプションのご検討をお願いします
[ ]
RE:10543 renderpaneでoverlayの時、背景透明オプNo.10550
秀丸担当 さん 25/02/12 13:46 [ コメントを投稿する ]
  レンダリング枠のオーバーレイで透明にできたらいいということで、ご意見参考にさせていただきます。
部分編集の色についても参考にさせていただきます。
[ ]

[ 新規に投稿する ]