【问题标题】:Per-Monitor DPI-Aware WPF Application versus RibbonWindowPer-Monitor DPI-Aware WPF 应用程序与 RibbonWindow
【发布时间】:2014-01-07 01:31:25
【问题描述】:

Microsoft recomends to use their C++ code 在 WPF 应用程序中实现 per-Monitor DPI-Awareness,这需要从 PerMonitorDPIWindow 类继承 WPF 窗口。但我也想将 WPF 的 Ribbon 实现(System.Windows.Controls.Ribbon)与 chrome 集成一起使用,这需要从 RibbonWindow 继承窗口。

在 WPF 中创建带有标题集成功能区的每显示器 DPI 感知窗口的最简单方法是什么?

【问题讨论】:

    标签: c# wpf ribbon multiple-monitors


    【解决方案1】:

    .NET 4.6.2 预览版最近发布了开箱即用的 WPF 中的 Per Monitor DPI Awareness。查看示例和开发者指南,了解如何在您的应用中使用它:

    https://github.com/Microsoft/WPF-Samples/tree/master/PerMonitorDPI

    【讨论】:

      【解决方案2】:

      抱歉回复晚了!

      我认为要实现您的要求,您需要重新实现他们的 C++ 以继承 RibbonWindow(而不是 Window)。

      可能有更简单的方法。 This open source project by emoacht 提供了几个不同的 DPI 感知窗口,其中之一是 ExtendedWindow,它是一个可自定义的 chrome 窗口。由于 RibbonWindow 本身就是一个将 Ribbon 组件与 Window Chrome 集成的 Window,也许有一种方法可以使用 ExtendedWindow 手动实现?

      如果您碰巧弄明白了,请考虑为 WpfMonitorAware 项目做出贡献,以便我们都可以使用 DPI 感知 RibbonWindows :-)

      最后 - WpfMonitorAware 中使用的语法特定于 Visual Studio 2015 和 AFAIK C# 6.0,因此您需要使用最新的 VS。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-18
        • 1970-01-01
        • 1970-01-01
        • 2015-01-07
        • 2016-11-05
        • 2015-11-12
        • 2012-12-01
        相关资源
        最近更新 更多