Проблема стиля пользовательского элемента управления WPF - PullRequest
3 голосов
/ 13 июля 2009

У меня есть пользовательский элемент управления (из MS Toolkit - DatePicker). Я создал свой собственный стиль, подобный этому:

<Style TargetType="{x:Type local:DatePicker}">

Но этот стиль не применяется автоматически. Я должен добавить ключ:

<Style x:Key="DatePickerStyle" TargetType="{x:Type local:DatePicker}">

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

<toolkit:DatePicker Style="{StaticResource DatePickerStyle}"

...

чтобы все заработало. Кто-нибудь знает почему?

1 Ответ

7 голосов
/ 13 июля 2009

вы пытались изменить TargetType на:

TargetType="{x:Type toolkit:DatePicker}"> 

Вы ссылаетесь на local в одном месте и toolkit в другом.

Обновление: Я попробовал это в небольшом приложении. Это XAML, как это должно работать:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication3.Window1"
    x:Name="Window"
    Title="Window1"
    Width="640" Height="480"
    xmlns:Toolkit="http://schemas.microsoft.com/wpf/2008/toolkit">
  <Window.Resources>
    <Style TargetType="{x:Type Toolkit:DatePicker}">
      <Setter Property="Background" Value="#FFFF0000"/>
    </Style>
  </Window.Resources>
  <Grid x:Name="LayoutRoot">
    <Toolkit:DatePicker HorizontalAlignment="Left" 
                        Margin="61,143,0,116" Width="232" />
  </Grid>
</Window>

В этом примере следует создать средство выбора даты с красным фоном.

...