Adam
Adam

Reputation: 45

Reste telerik Theme after add <Style>

I want to change my WPF & C# code to telerik. Before change i have HeaderContentControl with some Workspaces

My XAML code

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

My Resources

<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>

After modify code to Telerik my code looks like

My XAML code

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

My Resources

<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>

Workspaces wors ok, but Telerik theme doesn't work ( telerik:StyleManager.Theme="Office2016"). Styles only activate if I delete them Style="{StaticResource MainHCCStyle}", however then workspaces doesn't work

Upvotes: 0

Views: 59

Answers (1)

Martin Ivanov
Martin Ivanov

Reputation: 106

The custom Style that targets RadTabbedWindow is overriding its ControlTemplate (via the Template property). This means that the default look and feel of the control is replaced with the Dock panel defined in the Style.

To make this work, set the ContentTemplate of RadTabbedWindow, instead of its Template property.

Upvotes: 1

Related Questions