我有一个简单的 WPF 弹出窗口,当用户单击按钮时会显示它。
<Button
x:Name="aButton"
Content="Up/Down"
Width="75"
Height="30"
Click="aButton_Click"
/>
<Popup
PlacementTarget="{Binding ElementName=aButton}"
Placement="Right"
VerticalOffset="-31"
StaysOpen="False"
AllowsTransparency="True"
>
<StackPanel>
<Button Width="45" Height="45" Margin="2,0,2,2" Content="+"/>
<Button Width="45" Height="45" Margin="2,0,2,0" Content="-"/>
</StackPanel>
</Popup>
非常奇怪的是……这段代码的工作方式取决于它运行的机器。
我在我的主桌面上运行此代码,一切正常......而且应该如此。我在我的 PDC09 上网本上运行它......并且弹出窗口显示相反(在左侧而不是右侧,正如我使用 Placement 属性告诉它的那样)。
为什么是这样?我能做些什么呢?
最佳答案
我无法通过 Google 找到任何内容……但在 WPF forum 中进行了幸运搜索。 , 很快就找到了post .自我提醒:如果 Google 找不到任何内容,请不要忘记搜索 WPF 论坛。
答案是我的 PDC09 上网本本质上是一台平板电脑,显然,微软认为在为惯用右手的人配置的平板电脑上显示与放置属性相反的弹出窗口是个好主意......这样弹出窗口不会出现在用户的手下。
解决方案是恢复到自定义弹出窗口放置......如果您不想要这种行为。
我很想听听解决这个问题的任何其他方法。
关于wpf - 为什么我的 Popup 在某些机器上显示在 Placement 属性的对面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4043878/