儿童停靠窗口

Posted

技术标签:

【中文标题】儿童停靠窗口【英文标题】:Child docked window 【发布时间】:2010-02-11 20:44:07 【问题描述】:

您好, 我想让子窗口停靠在我的父窗口旁边。如果我移动父窗口,子窗口也应该移动。下面的图片应该解释我想要实现的目标:http://img689.imageshack.us/img689/1305/childdockedwindow.jpg 有人能帮助我吗。我正在用WPF写作。有人知道如何做到这一点吗?

【问题讨论】:

【参考方案1】:

处理主窗口上的Window.LocationChanged 事件和Window.SizeChanged 事件。当这些事件中的任何一个触发时,计算子窗口的新位置。

这是一个想法:

var mainWindow = ...;
var childWindow = ...;

var handler = new EventHandler(() =>

  childWindow.Top = mainWindow.Top;
  childWindow.Left = mainWindow.Left + mainWindow.Width;
);

mainWindow.LocationChanged += handler;
mainWindow.SizeChanged += handler;

当子窗口不再需要停靠或不再显示时,您可能还需要从两个事件中删除 handler 的代码。

【讨论】:

以上是关于儿童停靠窗口的主要内容,如果未能解决你的问题,请参考以下文章