Изменить тему.NET 4.5 WPF Лента

Я пытаюсь изменить тему нового WPF Ribbon Control с.NET Framework 4.5, и я застрял.

Мне удалось изменить только некоторые кисти (Фон, Передний план, Граница...), но мне кажется, что я не могу изменить яркие наложения и тени.

Я счастлив использовать словарь ресурсов, но я не знаю, какие свойства мне нужно установить.

Я надеюсь, что вы можете указать мне правильное направление, большое спасибо за вашу помощь!

4 ответа

Если вы хотите изменить что-либо, кроме открытых свойств элемента управления "Лента" (или любого другого элемента управления), например "Фон", "Передний план" и т. Д., Вам придется отредактировать шаблон элемента управления.

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

Для получения дополнительной информации о настройке шаблона элемента управления перейдите по этой ссылке: MSDN Styling & Templating

Для всех, кто сталкивался с этим, вы можете посмотреть на сторонние элементы управления, такие как: Лента Syncfusion (выглядит как офисная тема)

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

  <Application.Resources>

    <telerik:Theme x:Key="TelerikGlobalTheme">Office_Blue</telerik:Theme>
      <Style BasedOn="{x:Null}" TargetType="{x:Type Button}">
        <Setter Property="telerik:StyleManager.Theme" Value="{DynamicResource TelerikGlobalTheme}" />
      </Style>

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

Насколько я знаю, есть две темы: одна для "Windows 7(по умолчанию)", а другая для "Office 2007 Blue". Вы можете изменить тему, добавив словарь ресурсов в ресурсы окна, источником которых является файл xaml Office 2007 Blue, например:

<Window.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary 
          Source="/RibbonControlsLibrary;component/Themes/Office2007Blue.xaml"/>
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Window.Resources>

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

Вы можете узнать больше о Ленте отсюда.

А если вы хотите быстрое и простое решение, попробуйте готовые WPF Themes.

Другие вопросы по тегам