【问题标题】:Apply Office 2007 themes for WPF application为 WPF 应用程序应用 Office 2007 主题
【发布时间】:2009-09-30 11:16:57
【问题描述】:

我正在使用 WPF 工具包中的 RibbonControl。它具有办公室蓝色、黑色和银色主题。但主题不适用于窗口中的控件。有什么解决办法吗?

我正在应用类似的主题

 <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/RibbonControlsLibrary;component/Themes/Office2007Black.xaml"/>
 </ResourceDictionary.MergedDictionaries>

但控件就像按钮,文本框没有变化。

【问题讨论】:

    标签: wpf wpftoolkit ribbon-control ribboncontrolslibrary


    【解决方案1】:

    您需要一个单独的资源字典来为各种控件提供 WPF 样式。通过对各种应用程序的颜色进行采样,我创建了自己的。这真的不是很难做到,我花了几个小时。

    如果您正在寻找快速简便的解决方案,请尝试WPF Themes。 Bureau Blue 主题看起来很像 Office 2007 蓝色。

    【讨论】:

    • 我还有一个问题:使用 WPF 主题后,如何将主题重置为系统/操作系统主题?
    【解决方案2】:

    您如何尝试应用主题?您是否在 app.xaml 中应用它(如下所示)?

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/PresentationFramework.Aero,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35,ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
        <ResourceDictionary Source="/WPFToolkit;V3.5.31016.1;component/DataGrid/Themes/Aero.NormalColor.xaml" />
    </ResourceDictionary.MergedDictionaries>
    

    【讨论】:

      【解决方案3】:

      我一直在尝试重用 RibbonControlsLibrary.dll 中定义的资源,以便可以将类似的样式应用于我的应用程序的其余部分。经过数小时的搜索和摆弄,这就是我意识到的:

      <Rectangle Stroke="Black" StrokeThickness="2" RadiusX="6" RadiusY="6" HorizontalAlignment="Stretch" Width="Auto" Grid.RowSpan="3" Grid.ColumnSpan="3"
      Fill="{DynamicResource {x:Static r:RibbonSkinResources.RibbonBackgroundBrushKey}}" />
      

      我通过查看资源字典中的键是什么并查看这篇文章得到了这个想法: How do I get the actual resource from a ComponentResourceKey?

      此方法允许我创建与所选功能区外观具有相同外观的其他样式。更改皮肤将重新设置应用程序其他方面的样式,例如按钮等...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        • 2015-10-11
        • 2010-10-16
        相关资源
        最近更新 更多