WPF 惯用手与弹出窗口

2024-01-02

我刚刚将我的电脑从 Windows 7 迁移到 Windows 8,在运行我们的 WPF 应用程序时,我注意到我们的 WPF 弹出窗口和/或工具提示现在默认位于左下角,而不是正常的右下角。有人注意到这一点吗?我知道您可以在 xaml 中的每个工具提示上指定它们的位置,但我们有很多工具提示和弹出窗口。我想知道是否有一种方法可以在 WPF 应用程序中全局指定默认位置。谷歌在这个问题上还没有得出很多结果。我们有理由将它们保留在相同的原始默认位置(某些弹出窗口的内容与其启动位置相关)。

Windows 8:(左下)

Windows 7:(右下)

相同的代码!标准“工具提示”xaml 属性。

有任何想法吗?

已解决并发表评论


好的,我已经找到问题了。它与平板电脑/触摸屏有关。 (左手..右手偏好)另一个链接提供了一个原因。我现在正在研究一个解决方案来解决这个问题。我会尽快发布详细信息!

Windows 8 弹出位置 https://stackoverflow.com/questions/12927274/windows-8-popup-location


感谢@TravisWhidden 提供的解决方案。刚刚实现了它的改进版本,可以监听StaticPropertyChanged事件,我将其粘贴到这里,因为它看起来不像“黑客”。

private static readonly FieldInfo _menuDropAlignmentField;
static MainWindow()
{
    _menuDropAlignmentField = typeof(SystemParameters).GetField("_menuDropAlignment", BindingFlags.NonPublic | BindingFlags.Static);
    System.Diagnostics.Debug.Assert(_menuDropAlignmentField != null);

    EnsureStandardPopupAlignment();
    SystemParameters.StaticPropertyChanged += SystemParameters_StaticPropertyChanged;
}

private static void SystemParameters_StaticPropertyChanged(object sender, PropertyChangedEventArgs e)
{
    EnsureStandardPopupAlignment();
}

private static void EnsureStandardPopupAlignment()
{
    if (SystemParameters.MenuDropAlignment && _menuDropAlignmentField != null)
    {
        _menuDropAlignmentField.SetValue(null, false);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 惯用手与弹出窗口 的相关文章

  • 检查 DBNull 会引发 StrongTypingException

    我正在使用数据集从数据库中提取数据 一行中的一个字段是NULL 我知道这个 但是 以下 vb net 代码会抛出StrongTypingException 在数据集设计器中自动生成的 get SomeField 方法中 If Not IsD
  • 为什么抽象类应该实现抽象基类的抽象方法?

    在下面的示例中 该类Derived实现抽象方法method从课堂上Main 但我想不出在抽象中填写方法体的理由Derived类的实现 当然 我应该只在实际类中实现抽象方法 那么我怎样才能避免这样做呢 我还可以做些什么 abstract cl
  • 将复选框添加到 UniformGrid

    我正在尝试将复选框动态添加到 wpf 中的统一网格中 但看起来网格没有为它们分配足够的空间 所以它们都有点互相重叠 这就是我将它们添加到后面的代码中的方法 foreach string folder in subfolders PathCh
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • .Net应用程序设置路径

    默认情况下 Windows 应用程序设置保存在该目录中 USERPROFILE Local Settings Application Data
  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • 从固定文档中删除页面?

    如何从固定文档中删除页面 我添加这样的页面 Add page to pageContent PageContent pageContent new PageContent IAddChild pageContent AddChild fix
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • 页面中某些超链接控件上的本地化资源未发生变化

    上面是正在开发中的网站的屏幕截图 我们有一个 DropdownList 控件 并在其 SelectedIndexChanged 上进行回发 然后我们更改站点区域性 然后加载相应的资源文件 DropDownList ASP NET 代码
  • 变量替换为字符串

    我可以做类似的事情吗 s said s blah name blah 在 VB NET 中 写字越来越痛苦name said blah blah 在VB NET 14 对于VS2015 中 您可以使用字符串插值 https msdn mic
  • 绑定导致 StackOverflow

    我不确定我在这里做错了什么 可以说 我有两个用户控件BoxAand BoxB 两者都有一个名为的 DependencyPropertyText BoxB 包装了具有常规 TextBox 的 BoxA 绑定应该像这样 BoxB Text Bo
  • silverlight/xaml 中通知的图标徽章覆盖

    我的 silverlight 应用程序中有一个功能区栏 并且在其中一个图标上我希望有一个徽章图标 显示该图标激活的视图中的项目数 想象一下 OS X 中显示未读邮件数量的邮件图标或 IOS 应用程序图标上的通知计数器 我对 xaml 样式不
  • 将下一个参数作为 String.Format 中的字段宽度

    在 C 中 我有一个想要用于某些字符串的宽度 但直到运行时我才知道该宽度 我正在做这样的事情 string Format 0 digits value prints 123 as 123 是否有一个字符串格式化指令可以让我指定它 而无需像这
  • Type.GetInterface 和嵌套类型

    我刚刚发现 Type GetInterface 和嵌套类型有一个非常奇怪的行为 以下示例代码将显示问题 我使用接口的 Type FullName 来检查给定类型是否派生自该接口 public interface IStandardInter
  • 如何清除 (WPF) DataGrid 中的单元格(使其获取 NULL 值)?

    我们有一个列绑定到一个可为空的 SQL 整数值 当用户尝试 清除 单元格时DataGrid 我们得到验证错误 无法转换 如何将其设置为空并将 空 值绑定到基础列 我已经用谷歌搜索了这个问题两天并找到了任何东西 我试图编辑我对 HCL 的评论
  • MS Source Server - 使用 srctool 查看时源流显然不存在

    我一直在尝试安装 MS 调试工具中的 MS Source Server 内容 目前 我正在通过 Subversion 索引命令运行我的代码 pdbs 该命令现在按预期运行 它为给定的 pdb 文件创建流并将其写入 pdb 文件 但是 当我在
  • 即使进程确实存在,为什么 Process.WaitForExit 也会抛出“无进程”异常?

    我有一个包含以下代码的 Windows 服务 public static void ExtractTextInner string source string destination ProcessStartInfo startInfo n
  • Windows 8 Metro 应用程序(网格应用程序)过渡时出现黑色闪烁

    我正在基于网格应用程序模板构建 Windows 8 Metro 应用程序 一切都很顺利 直到我尝试更改应用程序的主题和背景 我将图像背景应用于所有 3 个 XAML 页面的网格 另外 我在应用程序包清单中将主题更改为 Light 但它没有执
  • WPF DataGrid 验证/绑定模式错误

    我创建了一个非常简单的新项目 仅测试 Microsoft WPF DataGrid 行为 不涉及其他 我只使用标准的 DataGrid
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world

随机推荐

  • 结帐页面上的返回购物车按钮

    有什么解决方案可以显示 返回购物车 WooCommerce 结帐页面上的按钮 实际上只有一个完整的订单按钮 但是如果用户想要更正他的订单 我们需要一个后退按钮 Thanks 是的 可以在结帐页面上使用 返回购物车 按钮显示自定义通知 这是自
  • Powershell / VSTS 构建 - 独立存储凭据/与用户运行脚本无关

    我正在尝试为构建创建一个脚本 用于签出文件 编辑文件并将其重新签入 我希望它在作为开发人员或构建代理运行时能够工作 我有一个类似的解决方案this https stackoverflow com a 25455769 852806 密码存储
  • 将大型本地数据库与服务器数据库同步(MySQL)

    我需要每周将大型 3GB 40 表 本地 MySQL 数据库同步到服务器数据库 这两个数据库完全相同 本地数据库不断更新 大约每周服务器数据库都需要使用本地数据更新 您可以将其称为 镜像数据库 或 主 主 但我不确定这是否正确 目前数据库仅
  • 编辑 swf 文件中的动作脚本

    我已经尝试了 10 个小时来编辑这个 swf 文件 它看起来与反编译器中的预期完全一样 但是当我将其导出到闪存时 它是一个空白画布 并且我无法访问操作脚本 我想做的只是在动作脚本中编辑一些东西 我什至不碰电影 有没有更简单的方法来做到这一点
  • Android Studio,logcat 在应用程序关闭后清理

    自从 Android Studio 更新 1 2 Beta 以来 我的 logcat 遇到了问题 当我运行我的应用程序时 它会像平常一样记录所有内容 然后我的应用程序崩溃了 应用程序说 不幸的是 游戏已停止 几秒钟后 Android 会关闭
  • 使用 Jquery 更改页面标题

    如何进行动态变化
  • trac-admin /path/to/myproject initenv

    我的 Trac 有问题 我无法创建新项目 在这里 在 path to myproject 中 我应该写什么来代替它 事实上 我的项目路径是 C Users Programmer BitNami Trac Stack 项目 每次它在 BitN
  • C# 析构函数的使用示例

    我正在阅读有关 C 中的析构函数的内容 但我无法为其找到合适的用例 有人可以提供一个用法示例并进行解释吗 非常非常感谢 Update书中的代码示例实现了 Destructor 和 Dispose 方法 请参阅书中的代码片段 class My
  • Pandas 按索引计数分组和排序

    假设我有这个数据框 d Path abc abc ghi ghi jkl jkl Detail foo bar bar foo foo foo Program prog1 prog1 prog1 prog2 prog3 prog3 Valu
  • Spark union 因嵌套 JSON 数据帧而失败

    我有以下两个 JSON 文件 name Agent1 age 32 details d1 1 d2 2 name Agent2 age 42 details 我带着火花读了它们 val jsonDf1 spark read json pat
  • GWT + Google 地图 API v3

    我的 GWT 项目中需要 Google Maps API v3 调用 更具体地说 是 Google 地图和 DirectionServices 等地点的自动完成功能 我们已经尝试了 2 种方法来获取 v3 访问权限 但没有一种方法令人满意
  • 在 .NET 正则表达式中,将零宽度正前瞻断言与其他搜索项相结合

    我需要解析一个具有多行标题 任意数量的多行详细信息和多行页脚的文件 每个细节都以一个模式开始 页脚也以一个模式开始 假设每个细节都以 detail 开头 页脚以 footer 开头 我可以通过以下方式成功找到每个细节 s detail de
  • 内插弧度角?

    如果给定的起始角度为 1 0f 结束角度为 6 0f 那么我真正想要插值的不是 1 和 6 之间的 5 而是较小的部分 这将导致逆时针插补 插值时如何考虑这一点 本质上 当给定从 0 到 6 283 的 2 个弧度角时 我如何知道是否应该根
  • 调试时编辑 C#

    我知道我以前处理过这个问题 但覆盖这个问题的设置似乎总是在变化 我在 Visual Studio 2008 中有一个 C 项目 当我调试时 VS 不允许我编辑代码 我不想编辑并继续 我只想为我的下一个版本进行更改 编辑并继续被禁用 当我在调
  • gSOAP 中的动态数组以 C++ 方式使用 STL 向量而不是 __ptr/__size?

    我正在使用 gSOAP 2 8 8 开发 Web 服务 我想发送自定义数据类型的无界序列 我可以通过以下方式实现这个gSOAP 用户指南第 11 11 节 http www cs fsu edu engelen soapdoc2 html
  • WPF:一个文本框,按下 Enter 键时会触发一个事件

    而不是附加一个PreviewKeyUp事件与每个TextBox在我的应用程序中 检查按下的键是否是 Enter 键 然后执行操作 我决定实现一个扩展版本TextBox其中包括一个 DefaultAction 事件 该事件在按下 Enter
  • CSS ul li 子弹消失[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的网页中
  • 如何在Android上为Room库设置混淆规则

    在我的应用程序中我想使用Room使用库database 最后为生成APK我启用minify选项 proguard in Build Gradle 我使用以下版本的 Room 库 implementation android arch per
  • CodeIgniter:所有 $this->db->query() 方法调用的 SQL 审计?

    我正在使用 CodeIgniter 2 并且想要审核所有 this gt db gt query sql calls 我们所有的数据库调用都是通过 query 方法 没有活动记录使用情况 我需要记录 sql 查询并将它们输入到自定义表中以用
  • WPF 惯用手与弹出窗口

    我刚刚将我的电脑从 Windows 7 迁移到 Windows 8 在运行我们的 WPF 应用程序时 我注意到我们的 WPF 弹出窗口和 或工具提示现在默认位于左下角 而不是正常的右下角 有人注意到这一点吗 我知道您可以在 xaml 中的每