2016-05-30 7 views
3

Я пытаюсь создать пользовательский элемент управления. Я создал ResourceDictionary файл (Themes \ Generic.xaml) с двумя стилями:Стиль для пользовательского контроля

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" 
    xmlns:themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" 
    xmlns:components="clr-namespace:ORPO.WPF.Components"> 

    <Style TargetType="{x:Type components:HeaderFilterDataGrid}" BasedOn="{StaticResource {x:Type DataGrid}}"> 
     ... 
    </Style> 
    <Style TargetType="{x:Type DataGridColumnHeader}"> 
     ... 
    </Style> 
</ResourceDictionary> 

и мой пользовательский элемент управления класса:

public class HeaderFilterDataGrid : DataGrid 
    { 
... 
static HeaderFilterDataGrid() 
     { 
      DefaultStyleKeyProperty.OverrideMetadata(typeof(HeaderFilterDataGrid), 
new FrameworkPropertyMetadata(typeof(HeaderFilterDataGrid)));    
     } 
... 
} 

Он отлично работает, когда я применяю первый стиль

DefaultStyleKeyProperty.OverrideMetadata(typeof(HeaderFilterDataGrid), 
    new FrameworkPropertyMetadata(typeof(HeaderFilterDataGrid))); 

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

+2

Попробуйте поместить стиль DataGridColumnHeader в стиле Style.Resources в стиле HeaderFilterDataGrid. – Clemens

+0

Это работает! Спасибо! – Stopee

ответ

3

Положить DataGridColumnHeader Стиль в ресурсах HeaderFilterDataGrid Стиль. Таким образом, DataGridColumnHeader будет стилем по умолчанию для всех DataGridColumnHeaders в HeaderFilterDataGrid.

<ResourceDictionary ...> 
    <Style TargetType="{x:Type components:HeaderFilterDataGrid}" 
      BasedOn="{StaticResource {x:Type DataGrid}}"> 
     <Style.Resources> 
      <Style TargetType="{x:Type DataGridColumnHeader}"> 
      ... 
      </Style> 
     </Style.Resources> 
     ... 
    </Style> 
</ResourceDictionary> 
Смежные вопросы