C# 焦点丢失时关闭弹出窗口
我有一个包含列表视图的弹出窗口。ListView包含客户名称。单击搜索栏时弹出窗口打开。用户可以在搜索栏(文本框)中输入文本,并根据输入过滤Listview 我想在弹出窗口失去焦点时关闭它。但是,默认的“自动关闭”行为C# 焦点丢失时关闭弹出窗口,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我有一个包含列表视图的弹出窗口。ListView包含客户名称。单击搜索栏时弹出窗口打开。用户可以在搜索栏(文本框)中输入文本,并根据输入过滤Listview 我想在弹出窗口失去焦点时关闭它。但是,默认的“自动关闭”行为StaysOpen=“False”并不好,因为每次有人单击搜索栏时,它都会关闭弹出窗口 当弹出窗口失去焦点时,我如何始终关闭它,除非焦点转到搜索栏?也许您可以在搜索文本框上设置一些挂钩。当它接收到焦点时,它可以打开弹出窗口并设置StaysOpen=true。当文本框失去焦点时,它可
StaysOpen=“False”
并不好,因为每次有人单击搜索栏时,它都会关闭弹出窗口
当弹出窗口失去焦点时,我如何始终关闭它,除非焦点转到搜索栏?也许您可以在搜索文本框上设置一些挂钩。当它接收到焦点时,它可以打开弹出窗口并设置
StaysOpen=true
。当文本框失去焦点时,它可以在弹出窗口上设置StaysOpen=false
XAML代码:
<Popup x:Name="pop" StaysOpen="False">
将事件处理程序添加到Leave事件(在控件焦点丢失时调用)。在此事件处理程序中,您可以检查具有焦点的新项目是否为搜索文本框
if(FormName.ActiveForm.ActiveControl==txtSearchBox)
然后根据搜索文本框是否有焦点,适当设置StaysOpen
。如何: