碰到了这个问题,记录一下,以便以后查阅:
在一个WPF项目中使用MahApps.Metro界面框架,其中有一个功能是嵌入一个带句柄的标记。
首先WPF是出了窗体和WebBrowser带有句柄外,其他控件时没有句柄这个概念的。
为了实现播放功能,我必须使用带有句柄的控件,那么WebBrowser是不能作为播放窗口的。
所以我在界面上嵌入:
1 <WindowsFormsHost IsEnabled="False"> 2 <WindowsFormsHost.Background> 3 <ImageBrush ImageSource="Images/badge.png" Stretch="Uniform" /> 4 </WindowsFormsHost.Background> 5 <winform:PictureBox x:Name="PictureBoxPlayer"/> 6 </WindowsFormsHost>
但是问题来了,MahApps.Metro框架根本不显示WindowsFormsHost,好像是被遮盖了,但是在VS中可以预览!
解决方法:
在界面中添加以下内容 就可以正确显示WindowsFormsHost了
1 xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 2 xmlns:behaviours="clr-namespace:MahApps.Metro.Behaviours;assembly=MahApps.Metro"
1 <i:Interaction.Behaviors> 2 <behaviours:BorderlessWindowBehavior ResizeWithGrip="True" AllowsTransparency="False" /> 3</i:Interaction.Behaviors>