代码之家  ›  专栏  ›  技术社区  ›  Darren Oster

如何在WPF中为自定义控件提供两个默认模板?

  •  0
  • Darren Oster  · 技术社区  · 17 年前

    在2007年1月版MSDN杂志上Charles Petzold的“使用模板定制WPF控件”一文中( http://msdn.microsoft.com/en-us/magazine/cc163497.aspx

    我目前正在编写一个需要此功能的自定义控件,但无法按照他所说的去做——无论如何,这是行不通的。有人有这个样品吗?

    1 回复  |  直到 17 年前
        1
  •  2
  •   Nir    17 年前

    您可以在scrollbar示例控件模板中看到它是如何完成的 http://msdn.microsoft.com/en-us/library/ms742173.aspx

    简而言之,资源字典中有两个模板:

    <ControlTemplate x:Key="VerticalScrollBar" TargetType="{x:Type ScrollBar}"> ...
    
    <ControlTemplate x:Key="HorizontalScrollBar" TargetType="{x:Type ScrollBar}"> ...
    

    <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
      <Style.Triggers>
        <Trigger Property="Orientation" Value="Horizontal">
          <Setter Property="Template" Value="{StaticResource HorizontalScrollBar}" />
        </Trigger>
        <Trigger Property="Orientation" Value="Vertical">
          <Setter Property="Template" Value="{StaticResource VerticalScrollBar}" />
        </Trigger>
      </Style.Triggers>
    </Style>
    
    推荐文章