WPF窗口的ResizeMode属性导致Windows 7与XP的位置差异

时间:2012-03-05 08:20:43

标签: wpf windows-7 windows-xp window position

我在新的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 :(得分:0)

我不是肯定的,但我认为Windows为可调整大小和不可调整大小的窗口应用了不同的WindowStyle。尝试明确地在Windows上设置WindowStyle属性 - 希望这应该使它们相同。

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