Reste telerik Тема после добавления <Style> - PullRequest
1 голос
/ 14 марта 2020

Я хочу изменить свой код WPF & C# на telerik. Перед изменением у меня есть HeaderContentControl с некоторыми рабочими областями

Мой код XAML

<HeaderedContentControl 
      Content="{Binding Workspaces}"
      ContentTemplate="{StaticResource WorkspacesTemplate}"
      Style="{StaticResource MainHCCStyle}"
/>

Мои ресурсы

<Style x:Key="MainHCCStyle" TargetType="{x:Type HeaderedContentControl}>
 <Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="{x:Type HeaderedContentControl}>
      <DockPanel>
        <ContentPresenter 
          ContentSource="Content" 
           ContentTemplate="{TemplateBinding ContentTemplate}" 
         />
       </DockPanel>
     </ControlTemplate>
   </Setter.Value>
 </Setter>
</Style>

<DataTemplate x:Key="WorkspacesTemplate">
        <TabControl 
      IsSynchronizedWithCurrentItem="True" 
      ItemsSource="{Binding}" 
      ItemTemplate="{StaticResource ClosableTabItemTemplate}"
      Margin="4"
      />
</DataTemplate>

После изменить код для Telerik. Мой код выглядит как

Мой код XAML

<telerik:RadTabbedWindow
  Content="{Binding Workspaces}"
  ContentTemplate="{StaticResource WorkspacesTemplate}"
  telerik:StyleManager.Theme="Office2016"
  Style="{StaticResource MainHCCStyle}"
  />

Мои ресурсы

<Style x:Key="MainHCCStyle" TargetType="{x:Type telerik:RadTabbedWindow}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type telerik:RadTabbedWindow}">
                    <DockPanel>
                        <ContentPresenter 
              ContentSource="Content" 
              ContentTemplate="{TemplateBinding ContentTemplate}" 
              />
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

<DataTemplate x:Key="WorkspacesTemplate">
        <TabControl 
      IsSynchronizedWithCurrentItem="True" 
      ItemsSource="{Binding}" 
      ItemTemplate="{StaticResource ClosableTabItemTemplate}"
      Margin="4"
      />

</DataTemplate>

Рабочие пространства Хорошо, но тема Telerik не работает ( telerik: StyleManager.Theme = "Office2016" ). Стили активируются, только если я их удаляю Style = "{StaticResource MainHCCStyle}" , однако тогда рабочие пространства не работают

1 Ответ

0 голосов
/ 20 апреля 2020

Пользовательский Style, нацеленный на RadTabbedWindow, переопределяет свой ControlTemplate (через свойство Template). Это означает, что внешний вид элемента управления по умолчанию заменен панелью Dock, определенной в Style.

Чтобы это работало, установите ContentTemplate из RadTabbedWindow вместо его свойства Template.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...