Per-Monitor DPI-Aware WPF应用程序与RibbonWindow

时间:2014-01-07 01:31:25

标签: c# wpf ribbon multiple-monitors

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

在WPF中使用标题集成功能区创建每个Monitor DPI感知窗口的最简单方法是什么?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

对于迟到的回复感到抱歉!

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

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

如果您碰巧弄清楚了,请考虑为WpfMonitorAware项目做出贡献,以便我们都可以使用支持DPI的RibbonWindows: - )

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