wpf - 带有Microsoft WPF功能区的窗口样式与Windows 8样式不匹配

标签 wpf windows-8 ribbon .net-4.5 wpf-4.5

我正在使用Windows 8和Visual Studio 2012的发行版来创建具有Ribbon控件的WPF应用程序。我选择了.Net Framework 4.5中WPF附带的功能区控件。
我创建功能区的代码:

<RibbonWindow
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfExperiments" x:Class="WpfExperiments.MainWindow"
    Title="MainWindow" Height="350" Width="525" Icon="Test.ico">
<Ribbon>        
    <Ribbon.ApplicationMenu>
        <RibbonApplicationMenu>
            <RibbonApplicationMenuItem Header="Item 1"></RibbonApplicationMenuItem>
        </RibbonApplicationMenu>
    </Ribbon.ApplicationMenu>
    <Ribbon.QuickAccessToolBar>
        <RibbonQuickAccessToolBar>
            <RibbonButton SmallImageSource="Test.ico" Label="Test"></RibbonButton>
        </RibbonQuickAccessToolBar>
    </Ribbon.QuickAccessToolBar>
</Ribbon>

但是问题在于它生成的窗口样式与Windows 8样式不匹配:

将其与资源管理器功能区进行比较。窗口标题居中(并具有不同的颜色),并且窗口的边框大小不同。功能区的样式不相同,但是如果我具有与MS Word相同的功能区样式(在Windows 8中正确显示),我将感到满意。

WPF的功能区控件不支持新的Windows 8样式吗?还是我错过了任何设置?
编辑:
我开始在Blend(4.0,我无权访问5.0)中编辑模板。修复了一些编译错误(似乎是混合中的错误)之后,我可以运行该应用程序,但它看起来像这样:

但这不是我进行更改的好起点...

最佳答案

WPF功能区不是操作系统提供的控件的包装(像大多数Windows Forms控件一样),而是从头开始构建的,以在功能区开发时具有功能区的外观和感觉,同时又是一个控件。与其他WPF控件一样灵活(请注意对模板部件的支持)。

就是说,这是(当前)不更新控件以支持Windows 8样式的问题。考虑到必须更改的多个控件的模板数量,以及向后兼容的需要(这是我的推测),发布.NET 4.5时,它可能不是优先事项。

您可能可以自己更改主题,但这看起来像是一项艰巨的任务,因此使用已经实现Windows 8功能区样式的第三方控件对您来说可能是值得的。

关于wpf - 带有Microsoft WPF功能区的窗口样式与Windows 8样式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12511416/

相关文章:

vba - 如何获取功能区自定义选项卡 ID?

c# - 通过 C# 在 WPF 中保存位图图像

wpf - 将Dockpanel内容置于顶部的网格内

c# - 使用 Infragistics 对话框窗口平铺窗口偏移

c# - WPF 如果滚动查看器的子项调整大小,滚动查看器会自动更新其范围吗?

c# - .NET4.5 中异步 POST 方法的 HttpResponseMessage 异常

windows - 如何以编程方式关闭 Windows 8 应用程序?

audio - 用于在 Windows 8 中操作音频输出的 API

windows-7 - Windows 7 功能区许可与 Office 2007 功能区许可

xaml - 如何正确地将功能区库类别绑定(bind)到集合