Плавающее дочернее окно в WPF - PullRequest
0 голосов
/ 07 апреля 2009

Я хочу создать плавающее дочернее окно в WPF-приложении .NET 3.0. Что я делаю:

sideWindow = new SideWindow(this);
sideWindow.Left = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width -    sideWindow.Width;
sideWindow.Top = 125;
sideWindow.WindowStartupLocation = WindowStartupLocation.Manual;
sideWindow.Owner = this;
sideWindow.Show();

Работает нормально, кроме одного клиента. По сообщениям трассировки окно создано, но клиент его не видит!

Есть идеи о подобных проблемах?

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 30 января 2012

Я удивлен, что это работает вообще: sideWindow.Width должно быть NaN (не число), когда вы проверяете его, потому что проходы макета не были выполнены в этот момент.

Вам необходимо вызвать методы Measure / Arrange в sideWindow.

0 голосов
/ 07 апреля 2009

Вы пробовали использовать родной WPF:

System.Windows.SystemParameters.PrimaryScreenWidth

Я обычно использую SystemParameters.VirtualScreenWidth, который лучше работает с двумя мониторами.

...