2

の上に配置する必要がある画像がありますWebBrowser。問題は、私が何をしても、画像が常にWebBrowserコントロールの背後にあることです。Awesomium は XBAP ファイルを読み込めないため、IE ActiveX の代わりに Chrome を使用するカスタム Web ブラウザ コントロールである Awesomium を使用できません。

私はほとんどすべてを見てきましたが、この問題の適切な解決策を見つけることができません。

WebBrowserWPFコントロール上に画像を表示するにはどうすればよいですか?

4

3 に答える 3

1

WPF webbrowser は、実際の WPF コントロールではありませんが、いくつかの HwndHost を使用して IE グッズを表示します。これは、「WPF 空域」問題 (.net 4.5 で修正する必要があります) につながります。Web ブラウザ コントロールの上に画像を表示する唯一のオプションは、Web ブラウザの上のポップアップに配置することです。ポップアップには独自の Win32 Hwnd があるため、独自の「空域」があります。

次のようなことをするだけです

<WebBrowser Name="web">
</WebBrowser>
<Popup PlacementTarget="{Binding ElementName=web}" Placement="Center" IsOpen="true">
 <Image Source="blub.png"/>
</Popup>
于 2012-07-03T04:50:22.880 に答える
1

WPFWebBrowserは、Silverlight や WinRT (別名 Windows 8 Metro) と同様の方法で実装されているのではないかと思います。

WebBrowserSilverlight とWinRT/MetroのWebViewは、常に Z オーダーの一番上にあります。これは、Trident ActiveX コントロールを使用しているためと思われます。Z オーダーの問題を回避するために、WebBrowserBrushWebViewBrushが用意されています。

残念ながら、WPF がこの目的のためにブラシを提供しているようには見えません。

インターネットで検索すると、このブラシの動作を模倣しようとしてさまざまな程度の成功を収めている人がいるようです. ただし、どのような種類のブラシを使用しても、レンダリングされたコンテンツとの対話性が失われるため、これは実際には役に立たない場合があります。

于 2012-07-03T02:41:26.770 に答える
1

この問題は、WPF 4.5 では解決されませんでした。一部のフォーラムには、以下のプロパティが 4.5 バージョンの Web ブラウザー コントロールで利用可能であるなどの情報がありましたが、計画は中止されました。したがって、空域の問題は自分で処理する必要があります。

WebBrowser.CompositionMode = System.Windows.Interop.CompositionMode.Full; WebBrowser.IsRedirected = true;

他のコントロールが Web ブラウザー コントロールの前にある場合に、Web ブラウザー コントロールの高さをゼロにすることで回避できます。

以下のサンプルコードを見つけてください。

Mainwindow に Web ブラウザー コントロールがあるとします。たとえば、ボタンをクリックすると、MainWindow の上に別のユーザー コントロールが表示されます。ただし、Airspace の問題により、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:28:34.507 に答える