0

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

ProgressBar 控件实际上有两个用于两个方向的默认模板。(ScrollBar 和 Slider 也是如此。)如果您希望新的 ProgressBar 支持两种方向,您应该编写两个单独的模板并在您也为 ProgressBar 定义的 Style 元素的 Triggers 部分中选择它们。

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

提前致谢。

4

1 回答 1

2

您可以在滚动条示例控件模板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>
于 2009-01-20T14:02:21.353 回答