C# WPF忽略弹出窗口外的单击
在我的WPF应用程序中,我想在单击按钮时显示一个弹出窗口 如果我在弹出窗口外单击,我希望弹出窗口关闭。我可以通过在弹出窗口上设置C# WPF忽略弹出窗口外的单击,c#,wpf,popup,C#,Wpf,Popup,在我的WPF应用程序中,我想在单击按钮时显示一个弹出窗口 如果我在弹出窗口外单击,我希望弹出窗口关闭。我可以通过在弹出窗口上设置StaysOpen=False来实现这一点 但是当我在弹出窗口外单击时,我希望WPF忽略关闭弹出窗口的初始单击。例如,如果我在弹出窗口外单击另一个按钮,我不希望该按钮执行click方法 如何使WPF在弹出窗口打开时忽略其外部的单击 下面是一些示例代码。当我点击“弹出”按钮时弹出窗口打开,当我点击外部时关闭。但我可以在弹出窗口打开时单击“PrintMessage”按钮,其
StaysOpen=False
来实现这一点
但是当我在弹出窗口外单击时,我希望WPF忽略关闭弹出窗口的初始单击。例如,如果我在弹出窗口外单击另一个按钮,我不希望该按钮执行click方法
如何使WPF在弹出窗口打开时忽略其外部的单击
下面是一些示例代码。当我点击“弹出”按钮时弹出窗口打开,当我点击外部时关闭。但我可以在弹出窗口打开时单击“PrintMessage”按钮,其单击事件将触发。我希望它的点击事件不要触发
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Popup x:Key="pop" StaysOpen="False" Placement="MousePoint">
<UniformGrid Background="Red">
<Button>Btn1</Button>
<Button>Btn2</Button>
</UniformGrid>
</Popup>
</Window.Resources>
<UniformGrid>
<Button Click="Popup_Click">Popup</Button>
<Button Click="PrintMessage_Click">PrintMessage</Button>
</UniformGrid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Popup_Click(object sender, RoutedEventArgs e)
{
Popup pop = (Popup)Resources["pop"];
pop.IsOpen = true;
}
private void PrintMessage_Click(object sender, RoutedEventArgs e)
{
Debug.WriteLine("Test");
}
}
Btn1
Btn2
弹出窗口
打印消息
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
私有无效弹出窗口\u单击(对象发送者,路由目标)
{
弹出弹出=(弹出)资源[“弹出”];
pop.IsOpen=真;
}
私有无效打印消息\u单击(对象发送者,路由目标e)
{
Debug.WriteLine(“测试”);
}
}