Расположение всплывающего окна Windows 8
При портировании приложения WPF на экземпляр Windows 8 (x64), работающий под VMware, я обнаружил, что все всплывающие окна не совпадают с тем, чем они должны быть. Дальнейшие исследования показывают, что это общая «проблема» даже для вновь созданного проекта. Похоже, что всплывающее управление WPF изменило значение слева и справа! Проблему можно показать, создав приложение wpf с использованием vs 2012 и добавив в него несколько всплывающих окон, например:
<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?