将非WPF window设为 WPF Window的Owner
2021-06-20 10:13
标签:bsp 静态方法 htm rop win log source 因此 net 如果WPF Content是寄宿在Win32 窗体或Windows Form中,则在WPF模块中可能不会存在WPF Window(WPF模块的根可能是个UserControl).如果在WPF模块中弹出对话框,则设定其Owner不是那么方便。 WPF Window class只提供了Window类型的Owner属性. 但是.net framework提供了WindowInteropHelper.Owner 属性可以将Window的Owner设为一个handle.因此我们只要能获取到任何UI元素的Handle,我们便可以将其设为Window的Owner,不管其是不是一个WPF Window. 而.net framework又提供了HwndSource类型,利用该类型通过如下三步我们能设定WPF Window的Owner为一个普通的Visual: 1. 通过该类型的静态方法FromVisual(Visual visual)我们可以得到任何WPF Visual元素的HwndSource, 2. 通过HwndSource的Handle属性我们可以得到该Visual元素的Win32 Handle 3. 最后我们将得到的Win32 Handle赋给WindowInteropHelper.Owner,这样便将该Handle所代表的Visual设定为WindowInteropHelper所代表的Window的Owner了。 将非WPF window设为 WPF Window的Owner 标签:bsp 静态方法 htm rop win log source 因此 net 原文地址:https://www.cnblogs.com/lonelyxmas/p/10261648.html
上一篇:C#获取随机数,真正的随机数
下一篇:WPF中的Drawing
文章标题:将非WPF window设为 WPF Window的Owner
文章链接:http://soscw.com/essay/96377.html