gpt4 book ai didi

wpf - Windows 8 弹出位置

转载 作者:行者123 更新时间:2023-12-03 20:31:21 25 4
gpt4 key购买 nike

在将 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>

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

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

最佳答案

进一步调查发现控制面板里面有一个设置:
ControlPanel->Hardware and Sound->Tablet PC(节点名称可能不完全匹配,因为我使用的是非英文版本的 Windows 8)。有一个用户喜欢使用的手写设置。

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

关于wpf - Windows 8 弹出位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12927274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com