wpf - 为什么我的 Popup 在某些机器上显示在 Placement 属性的对面?

标签 wpf popup

我有一个简单的 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/

相关文章:

iphone - 在 iphone 中单击按钮时弹出 View 显示字符串

javascript - jQuery 弹出窗口在手机上调整大小

qt - 如何从 QML 设置 PopupItem 的 objectName?

javascript - 添加附加功能以退出页面弹出消息

wpf - 在 WPF 应用程序中保存状态

c# - XAML 找不到命名空间。有时

wpf - 我可以在 WPF 中使用系统默认的保存/新建/等文件图标吗?

html - 如何防止 title 属性显示工具提示?

c# - CheckBox 模板中的选中状态未更新

wpf - .net core 3.0 中的 Microsoft Speech