Детское окно - PullRequest
       24

Детское окно

4 голосов
/ 11 февраля 2010

Привет,

Я хотел бы, чтобы дочернее окно было закреплено рядом с моим родительским окном. Если я перемещаю родительское окно, дочернее окно также должно быть перемещено. Изображение ниже должно объяснить, чего я хотел бы достичь:
http://img689.imageshack.us/img689/1305/childdockedwindow.jpg
Может кто-то помочь мне, пожалуйста. Я пишу в WPF. У кого-нибудь есть идеи, как это сделать?

1 Ответ

1 голос
/ 12 февраля 2010

Обработка событий 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 из обоих событий, когда дочернее окно больше не нужно закреплять или больше не отображать.

...