我在WPF弹出窗口中托管windowsforms控件.问题如下:
我甚至尝试过弹出窗口的IsMouseCaptureWithin属性,发现它不适用于winforms(我猜它是框架中的一个bug).
另一个问题,我试图关闭弹出窗口根主体窗体(这是窗口形式)被取消激活(按Alt + Tab),但这个事件(停用)即使我在弹出窗口中进入windowshostControl中的一个控件时被触发.
期望的行为:
感谢任何输入.
谢谢.
我在使用 WPF 中事实上的标准弹出窗口时遇到了很多问题,因为它们实际上是一个具有自己句柄的新窗口。这意味着如果您在屏幕上拖动应用程序,弹出窗口将保持不变(它不会随窗口移动)。这也意味着您的弹出窗口有一些奇怪的行为,并且不会像其他控件通常那样与您的应用程序交互。
我创建了 2 个装饰器类来解决这个问题:
PopupDecorator.cs和 TimeoutPopupDecorator.cs
使用起来非常简单:
为新的弹出类添加命名空间声明。IE
xmlns:dday_wpf="clr-命名空间:DDay.WPF"
围绕您希望能够使用装饰器显示弹出窗口的区域。IE
<dday_wpf:PopupDecorator x:Name="popup"> <dday_wpf:PopupDecorator.Popup> ... 弹出窗口的内容放在这里 ... </dday_wpf:PopupDecorator.Popup> ... 面板的内容放在这里 ... < /dday_wpf:PopupDecorator>
Popup从那一刻起, 它的工作方式与正常情况几乎相同。
这可能无法解决您的所有问题,但希望能有所帮助。