Применение тем Office 2007 для приложения WPF

Я использую RibbonControl из инструментария WPF. Он имеет офисные синие, черные и серебряные темы. Но тема не применяется для элементов управления в окне. Есть ли решение для этого?

Я применяю тему, как

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

но элементы управления похожи на button, textbox не являются клетками.

3 ответов


вам нужен отдельный словарь ресурсов для предоставления стилей WPF различным элементам управления. Я создал свой собственный, путем выборки цветов в различных приложениях. Это действительно не очень сложно сделать,и это заняло у меня пару часов.

Если вы ищете быстрое и простое решение, попробуй темы WPF. Тема бюро Blue очень похожа на Office 2007 blue.


Как вы пытаетесь применить тему? Вы применяете его в своем приложении.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>

Я пытался повторно использовать ресурсы, определенные в 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?

этот метод позволяет мне создавать другие стили, которые будут иметь тот же внешний вид, что и выбранная кожа ленты. Изменения кожи преобразит другие аспекты приложения, такие как кнопки и т. д...