Windows 8弹出位置

SFD*_*nan 15 wpf windows-8

在将WPF应用程序移植到在VMware下运行的Windows 8实例(x64)时,我发现所有弹出窗口都与它们应该是的错误对齐.进一步调查显示,即使对于新创建的项目,这也是一个常见的"问题".WPF的弹出控件似乎改变了左右的含义!可以通过使用vs 2012创建一个wpf应用程序并在其中放置一些弹出窗口来显示问题,例如:

<Grid Background="Gray">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="129*"/>
        <ColumnDefinition Width="264*"/>
        <ColumnDefinition Width="124*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="30"/>
        <RowDefinition Height="30"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <DockPanel Grid.Row="1" Grid.Column="1" Background="LightGray">
        <Popup StaysOpen="True" IsOpen="True" Grid.RowSpan="2" Placement="Right"  AllowsTransparency="True" >
            <TextBlock Text="Right" Foreground="White" />
        </Popup>
        <Popup StaysOpen="True" IsOpen="True" Grid.RowSpan="2" Placement="Left" AllowsTransparency="True"  >
            <TextBlock Text="Left" Foreground="White" />
        </Popup>
        <Popup StaysOpen="True" IsOpen="True" Grid.RowSpan="2" Placement="Top"  AllowsTransparency="True" >
            <TextBlock Text="Top" Foreground="White" />
        </Popup>
        <Popup StaysOpen="True" IsOpen="True" Grid.RowSpan="2" Placement="Bottom"  AllowsTransparency="True"  >
            <TextBlock Text="Bottom" Foreground="White" />
        </Popup>
    </DockPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)

应该在左侧显示的弹出窗口实际显示在右侧,反之亦然,应该在左下方的弹出窗口显示在右下方等.

我的问题是:1)这是一个错误或功能吗?2)如果它是一个功能,如何对代码进行最小化更改,以便它们在Windows 7和Windows 8中以相同的方式执行?

SFD*_*nan 17

进一步调查显示控制面板内有一个设置:ControlPanel->硬件和声音 - >平板电脑(节点名称可能不完全匹配,因为我使用的是非英文版的Windows 8).有一个用户喜欢写的手的设置.

必须根据.net框架的手册选择"我更喜欢用左手书写",以便将弹出窗口置于"正确位置"(不使用上面的解决方案).这个假设根本不对,至少对于destop应用程序!