4

WPFアプリケーションのWebBrowserコントロールに「オーバーレイコントロール」を表示する方法のヒントを誰かに教えてもらえますか?ユーザーが機能を選択でき、選択するとナビゲーションコントロールが消えるように、ナビゲーショングラフィックをオーバーレイとして表示したいと思います。

今のところ、WPFの経験はあまりありません。:(どこから始めればいいのかわかりません。ヒントやリンクは素晴らしいでしょう。ありがとう

4

4 に答える 4

5

これには問題があります。WPFブラウザコントロールには「空域」の問題があります。基本的に、それはあなたがブラウザコントロールの上に何も置くことができないことを意味します。

回避策は、オーバーレイされたコントロールをポップアップコントロールに配置することです。

于 2009-10-06T19:55:32.837 に答える
1

ちょっとしたハックですが、これを乗り越える方法を見つけました。基本的に、コントロールをWinFormコントロールとして作成し、WindowsFormsHostを使用してそれらをホストします。

WindowsFormsHostは、Webブラウザコントロールの上に配置されます。

私が言ったように、理想的ではありませんが、あなたが必死ならうまくいくでしょう。

于 2013-04-04T06:58:30.033 に答える
0

Chromiumを使用するwpfベースのブラウザがあります。ActiveXブラウザコントロールではなく、他のwpfオブジェクトと同じように扱うことができるはずです。

于 2009-10-07T04:59:36.453 に答える
0

WPF Webブラウザーコントロールのエアスペースを通過するのは困難ですが、アニメーションを表示するときにWebブラウザーコントロールの高さを最小化し、タスクが終了したときに高さを再設定することができます。

この問題のより良い回避策は、ブラウザコントロールの高さを処理することです。以下の簡単なシナリオを見つけてください。

メインウィンドウにWebブラウザコントロールがあるとします。たとえば、次のようなアクションを実行する場合、メインウィンドウの上にある別のユーザーコントロールがあるボタンをクリックします。ただし、Airspaceの問題により、Webブラウザーはその親コン​​トロールに配置されず、コントロールの上に表示されます。

修正:標準の修正は、シナリオに応じて、Webブラウザーに対する他の制御をトリガーするときに、Webブラウザーの高さをゼロに設定できることです。以下に、サンプルの実装があります。

MainWindow.Xamlにイベントを含めます。

Activated="Window_Activated"
Deactivated="Window_Deactivated"

Xaml.csでは、高さを設定してシナリオを処理します。

private void Window_Activated(object sender, EventArgs e)
{
    wb.Height = double.NaN;
}

private void Window_Deactivated(object sender, EventArgs e)
{
    wb.Height = 0;
}
于 2013-11-06T11:24:18.207 に答える