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

WPF窗口的ResizeMode属性导致Windows 7与XP的位置差异,wpf,windows-7,windows-xp,window,position,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"

我在新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(预期结果):

Windows 7(意外结果):


造成这种差异的原因是什么?如何处理它,从而可以依赖WPF窗口的位置和大小属性?

我不确定,但我认为Windows对可调整大小和不可调整大小的窗口应用了不同的窗口样式。尝试在你的窗口上显式地设置WindowsStyle属性-希望这会使它们相同


我不是肯定的,但我认为Windows对可调整大小和不可调整大小的窗口应用了不同的窗口样式。尝试在你的窗口上显式地设置WindowsStyle属性-希望这会使它们相同


我得出结论,造成这种影响的原因是扩展帧的DWM特性。甚至WinAPI GetWindowRect函数也可能有故障。需要更深入地探讨这个问题。可能WPF Shell集成库已经有了可以使用的解决方法。我得出结论,造成这种效果的原因是扩展框架的DWM特性。甚至WinAPI GetWindowRect函数也可能有故障。需要更深入地探讨这个问题。可能是WPF外壳集成库已经准备好了可以使用的变通方法。