VMware で実行されている Windows 8 インスタンス (x64) に WPF アプリケーションを移植しているときに、すべてのポップアップが本来あるべきものとずれていることがわかりました。さらに調査を進めると、これは新しく作成されたプロジェクトであっても共通の「問題」であることが明らかになりました。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>
左に表示されるはずのポップアップが右に表示されたり、左下にあるはずのポップアップが右下に表示されたり…。
私の質問は次のとおりです。1) これはバグですか、それとも機能ですか? 2) それが機能の場合、Windows 7 と Windows 8 内で同じように動作するように、コードに最小限の変更を加えるにはどうすればよいですか?