[英]Make WPF control over the web browser
我有一个WPF应用程序,我有一个嵌入式Web浏览器控件。 我想在特定时间通过Web浏览器显示动画,但问题是WPF控件在保持在Web浏览器上时是不可见的。
有没有办法让我的用户控制Web浏览器?
请先回答我,
这是Web浏览器控制WPF Web Browser
控制或Winform
在托管WebBrowser控件WinFormHost
?
对于任何WPF控件来显示动画,你是否探索过...
Grid
或Canvas
,然后将拉伸的Border
(其中包含运行的动画)放置为grid / canvas的最后一个子节点? Adorner
不断改变绘图环境以模拟动画? Popup
,其静态放置是否完成(绑定到控件的绝对左侧,顶部位置和实际高度和宽度属性)在控件上? 尝试使用透明弹出窗口进行Web浏览器控制...
<Grid>
<WebBrowser x:Name="WebBrowser1"/>
<Popup IsOpen="{Binding StartAninmation}"
AllowsTransparency="True"
Grid.RowSpan="99"
Grid.ColumnSpan="99"
Placement="Center"
Width="{Binding ActualWidth,
ElementName=WebBrowser1,
Mode=OneWay}"
Height="{Binding ActualHeight,
ElementName=WebBrowser1,
Mode=OneWay}"
PlacementTarget="{Binding ElementName=WebBrowser1}"
Opacity="0.5"
Margin="3">
<TextBlock Text="Loading ..."/>
</Popup>
</Grid>
其中一个肯定会适用于您的情况。
不幸的是,由于操作系统呈现WinForms和WPF内容的顺序,WPF Webbrowser Control(基本上是一个包装的WinForms WebBrowser控件)是不可能的。
另请参阅: 有没有办法在wpf WebBrowser控件之上呈现WPF控件?
有一个第三方应用程序Awsomium应该使它成为可能。
编辑:另一种可能性是在WebBrowser控件上方渲染无框窗口。 但是将它保持在正确的位置/ z顺序有点棘手。
CefSharp提供基于Chromium / V8的纯WPF浏览器控件,不受Microsoft WebBrowser控件的空域问题的影响(免责声明:我是CefSharp的维护者)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.