9

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

我正在应用主题

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

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

4

3 回答 3

3

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

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

于 2009-10-02T16:54:58.780 回答
0

您如何尝试应用主题?您是否在 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>
于 2009-09-30T21:48:43.347 回答
0

我一直在尝试重用 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}}" />

我通过查看资源字典中的键是什么并查看这篇文章得到了这个想法: 如何从 ComponentResourceKey 中获取实际资源?

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

于 2010-03-10T11:52:09.247 回答