Я определяю два окна в новом проекте приложения 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?
Я не уверен, но я думаю, что Windows применяет другой WindowStyle для изменяемых и не изменяемых размеров окон.Попробуйте явно установить свойство WindowStyle для своих окон - надеюсь, это должно сделать их одинаковыми.
http://msdn.microsoft.com/en-us/library/system.windows.window.windowstyle.aspx