コントロールの背景の透明化 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 N88-BASIC  (社会人) 投稿日時 2022/8/31 18:12:52
魔界の仮面弁士 さん、ご連絡ありがとうございます。

>TopMost = true にしておいた Form の Opacity プロパティを1.0 / 255.0 (約 0.0039)にして配置する…
 想像できなかった方法です。
 私は苦肉の策として画面の隅に目立たない色の小さなボックスを配置する方法で逃げていたのですが、ご紹介の方法では色やサイズの制約が少なく、タッチスクリーンにも対応でき便利そうです。

 早速利用させていただきます。

 WebView2 には C# 関連の知識が要求されるようで、このページにある「初級講座」から始めたいと思います。

今後ともよろしくお願いします。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/8/30 15:16:57
> 画面の隅などに見えない状態に配置する予定でした

TopMost = true にしておいた Form の Opacity プロパティを
1.0 / 255.0 (約 0.0039)にして配置するとか。

0 にしてしまうと触れなくなってしまうので、
限界まで透明度を上げた状態にして代用。
投稿者 N88-BASIC  (社会人) 投稿日時 2022/8/29 23:49:20
魔界の仮面弁士 さん、ご連絡ありがとうございます。

WebView2 のコンテキストメニューの情報をありがとうございます。私の知識ではハードルが高そうですがゆっくり試してみます。イベントは WebBrowser や他のコントロールのように通知されないような感じがします。

ボタンなどの透明化の件ですが、ご指摘の通りクリックを通知するためだけに利用するのが目的です。コンテキストメニューが WebView2 上で変更できないと思い、ボタンをコンテキストメニューを表示するためだけに利用するつもりで、画面の隅などに見えない状態に配置する予定でした(Windows 11 の画面右下隅のディストップ表示のような感じ)。

また、いろいろとお世話になるかもしれませんがよろしくお願いします。


投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/8/29 16:44:12
WebView2 のコンテキストメニューというと、このあたりでしょうか。
https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/how-to/context-menus?tabs=csharp


> 透明化した他種のコントロールを使ってコンテキストメニューを起動できないかと考えたのですが
透明化というのが何の話かわからなかったのですが、もしかして
クリックを通知するために、上に不可視コントロールを置いておきたいということでしょうか。
(そんなことをしたら、ボタンやテキストボックスの操作が阻害されてしまいそうですが…)
投稿者 N88-Basic  (社会人) 投稿日時 2022/8/29 15:27:22
Windows 11 Home & Visual Studio 2022 にてアプリを作成しています。

Internet Explore のサポート終了に伴い WebBrowser の今後の動向について情報がはっきりしませんが今のところ、上記環境で最重要アプリは問題なく動作しており、Windows 10 でも問題ないので安心しておりますが。その他のアプリでは一部のページでは警告なり動作しないものもあるようです。

そこで、今後の対応の準備として、WebView2 の利用を始めました。まだ、ホームページを閲覧するだけですが、フルスクリーン状態で自作のメニューで操作したいと思っておりますが、WebBrowser では自作のコンテキストメニュー(ContextMenuStrip)が利用できたのですが、WebView2 では設定ができないようです。そこで、透明化した他種のコントロールを使ってコンテキストメニューを起動できないかと考えたのですが、透明化(WebView2 の表示内容が透けて見える)する方法がわかりません。Mouse 移動をチェックして特別なエリアでコンテキストメニューを表示と考えたのですが、MouseMove が動作しません。

説明が長くなりましたが、コンテキストメニューを利用またはコントロールの透明化を利用する方法をご存じでしたら情報を提供していただければ幸いです。

また、タブブラウザ的な利用や、ページ上のリストボックスなども操作する予定です。

以上、よろしくお願いします。