2009-04-06 2 views
0

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

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(); 

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

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

спасибо.

ответ

0

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

System.Windows.SystemParameters.PrimaryScreenWidth 

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

+0

Я сбрасываю позиции, высоту и ширину окна, и они верны. Если я попытаюсь найти дочернее окно с помощью Snoop, в дереве объектов такого окна нет. Но я не могу найти его на компьютере, отображающем окно. –

0

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

Вам необходимо вызвать методы измерения/упорядочивания на боковой стороне окна.

Смежные вопросы