如何在 WPF 中为子窗口提供不超出主窗口的边界

本文关键字:窗口 边界 WPF | 更新日期: 2023-09-27 17:55:21

我真的有一个简单的问题,但我似乎找不到它。我正在使用 WPF,并且正在创建一个显示简单视图的子窗口(类窗口)。现在我可以移动窗口,但我想要的是它不能移动到主窗口之外。(如果我没记错的话,我认为 Popup 控件具有这种行为)。有什么简单的方法可以做到这一点吗?

如果不清楚,请告诉我。

提前谢谢。

亲切问候Qwin

如何在 WPF 中为子窗口提供不超出主窗口的边界

将父窗口作为子窗口的所有者并调整位置

 public MainWindow()
  {
   InitializeComponent();     
   LocationChanged += new EventHandler(Window_LocationChanged);
  }

ChildWindow win = new ChildWindow();
   win.Owner = this;
   win.Show();
private void Window_LocationChanged(object sender, EventArgs e)
  {
   Console.WriteLine("LocationChanged - ({0},{1})", this.Top, this.Left);
   foreach (Window win in this.OwnedWindows)
   {
    win.Top = this.Top + 100;
    win.Left = this.Left + 100;
   }
  }