Свойство ResizeMode окна WPF вызывает разницу в положении в Windows 7 и XP - PullRequest
2 голосов
/ 05 марта 2012

Я определяю два окна в новом проекте приложения WPF:

<Window x:Class="WpfWindowSizeLocationDifferenceXP7.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1"
    Left="100" Top="100" Height="200" Width="200"
    ResizeMode="CanResize"/>

<Window x:Class="WpfWindowSizeLocationDifferenceXP7.Window2"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window2"
    Left="300" Top="100" Height="200" Width="200"
    ResizeMode="NoResize"/>

Как видите, окна стоят бок о бок, и единственное отличие заключается в значении свойства ResizeMode.Второе окно означает, что его размер нельзя изменить.Результат в Windows XP и результат в Windows 7 значительно отличаются.

Извините.Как новый пользователь я не могу публиковать изображения, поэтому вот простые ссылки на них.

Windows XP (ожидаемый результат): http://s9.postimage.org/qrojbckil/Wpf_Window_Size_Location_XP.jpg

Windows 7 (неожиданный результат): http://s16.postimage.org/6nmyc6b79/Wpf_Window_Size_Location_7.png

В чем причина разницы?Как с этим справиться, чтобы стало возможным полагаться на свойства местоположения и размера окна WPF?

1 Ответ

0 голосов
/ 05 марта 2012

Я не уверен, но я думаю, что Windows применяет другой WindowStyle для изменяемых и не изменяемых размеров окон.Попробуйте явно установить свойство WindowStyle для своих окон - надеюсь, это должно сделать их одинаковыми.

http://msdn.microsoft.com/en-us/library/system.windows.window.windowstyle.aspx

...