WPF自定义控件样式问题

6

我有一个自定义控件(来自MS Toolkit - DatePicker)。我已经制作了自己的样式,像这样:

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

但是这种样式不会自动应用。我需要添加Key:
<Style x:Key="DatePickerStyle" TargetType="{x:Type local:DatePicker}">

并在每个自定义控件中引用它,如下所示:

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

如何让它工作起来?有人知道原因吗?

1个回答

11

你尝试将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>

这个示例应该会创建一个带有红色背景的日期选择器。


1
我认为这不是重点,因为这只是一个引用定义的问题。 - theSpyCry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接