Вопрос

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

Я применяю тему следующим образом

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

Но элементы управления похожи на button, текстовое поле не разделено на группы.

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top