0

2007 年 1 月版の MSDN マガジン ( http://msdn.microsoft.com/en-us/magazine/cc163497.aspx )の Charles Petzold の記事「Using Templates to Customize WPF Controls」で、彼は次のように述べています。

ProgressBar コントロールには、実際には 2 つの方向に対応する 2 つの既定のテンプレートがあります。(これは、ScrollBar と Slider にも当てはまります。) 新しい ProgressBar で両方の方向をサポートする場合は、2 つの別個のテンプレートを記述し、ProgressBar にも定義する Style 要素の Triggers セクションでそれらを選択する必要があります。

私は現在、この機能を必要とするカスタム コントロールを作成していますが、彼の言うように実行する方法がわかりません。誰かこれのサンプルを持っていますか?

前もって感謝します。

4

1 に答える 1

2

スクロールバーのサンプルコントロールテンプレートhttp://msdn.microsoft.com/en-us/library/ms742173.aspxでどのように行われたかを確認できます。

ここでは、サンプルの関連部分のみをコピーしました。

つまり、リソースディクショナリには2つのテンプレートがあります。

<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 に答える