Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在WPF中同时关闭两个弹出窗口_C#_Wpf - Fatal编程技术网

C# 无法在WPF中同时关闭两个弹出窗口

C# 无法在WPF中同时关闭两个弹出窗口,c#,wpf,C#,Wpf,在WPF中,我在网格内的一个按钮的点击事件上同时显示两个弹出窗口。现在,每当我点击弹出窗口外的任何地方,无论是“第二个弹出窗口”还是“在不包括两个弹出窗口的区域”,其他弹出窗口都会消失。我的要求是两个弹出窗口应该一起消失,当单击其他弹出窗口时,它们不应该消失,当单击两个弹出区域之外的任何位置时,它们都应该一起隐藏 我正在尝试的代码:- popup1.PlacementTarget = clickedButton; popup1.Placement = PlacementMode.Relative

在WPF中,我在网格内的一个按钮的点击事件上同时显示两个弹出窗口。现在,每当我点击弹出窗口外的任何地方,无论是“第二个弹出窗口”还是“在不包括两个弹出窗口的区域”,其他弹出窗口都会消失。我的要求是两个弹出窗口应该一起消失,当单击其他弹出窗口时,它们不应该消失,当单击两个弹出区域之外的任何位置时,它们都应该一起隐藏

我正在尝试的代码:-

popup1.PlacementTarget = clickedButton;
popup1.Placement = PlacementMode.Relative;
popup1.HorizontalOffset = -435.5;
popup1.VerticalOffset = -20;
popup1.IsOpen = true;

popup2.PlacementTarget = clickedButton;
popup2.VerticalOffset = 9;
popup2.IsOpen = true;  

在编写代码的同时,添加以下函数

  public List<Popup> ActivePopups = new List<Popup>();

  public void AddActivePopup(ref Popup ActivePopup)
  {
    try
      {
        if (ActivePopup.IsOpen == true)
            ActivePopups.Add(ActivePopup);
      }
    catch (Exception ex)
      {
        throw ex;
      }
   } 

您是否尝试将
StaysOpen
属性设置为
true
?是的,对于xaml文件中的两个弹出窗口,我已将“StaysOpen”属性本身设置为false。try/catch with
throw ex
不起任何作用,仅隐藏异常信息。另外,
Popup
是一个类,因此不需要
ref
。我已经将这两个弹出窗口的'IsOpen'属性设置为'true'。我看不到将这两个弹出窗口添加到列表中有任何额外的好处。
  AddActivePopup(popup2);