WPF弹出窗口自动关闭

14

如果在 WPF 控件中单击弹出窗口区域之外父控件被移动,如何关闭 WPF 弹出窗口

我不能从父控件中检查它,所有操作必须由控件本身完成。

2个回答

30
 <Popup x:Name="pop" IsOpen="False"  StaysOpen="False">

1
是的,这确实有效,唯一的问题是,如果您将鼠标移动到弹出窗口之外并滚动..它会保持打开状态 :-/ - theSpyCry
3
如果将 "StaysOpen" 属性设置为 true,则弹出窗口会一直保持打开状态,直到通过将 "IsOpen" 属性设置为 false 显式关闭它。如果 "StaysOpen" 为 false,则弹出窗口控件会拦截所有鼠标和键盘事件,以确定其中一个事件是否发生在弹出窗口控件外部。这是我在 MSDN 上找到的信息。 - Djole
也许不是这样。我正在尝试制作一个弹出式键盘,当你触摸框外时,它会自动消失。但是如果将StaysOpen设置为false,则键盘根本不会弹出。 - Patrick
1
StaysOpen似乎无法在Win7上与触摸事件一起使用,但似乎在Win8上可以正常工作。 - Tristan

2
在WinRT和通用应用程序中,您可以使用
IsLightDismissEnabled="True"
,当单击任何位置时,它将自动关闭。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接