0

スタイリングをSliderコントロールの外に置くと、すべてが台無しになります (スライダーを動かすことができなくなり、動かなくなります)。

元のコード (動作します):

<Slider IsThumbToolTipEnabled="True" SmallChange="10" Orientation="Horizontal" StepFrequency="10" Minimum="900" Maximum="2500" Value="1300" />

私はそれを取得し、期待どおりに動作します:

ここをクリックしてツールチップを取得します

ここで、外部スタイルを使用すると:

<Style x:Key="ELOSlider" TargetType="Slider">
      <Setter Property="IsThumbToolTipEnabled" Value="True"/>
      <Setter Property="SmallChange" Value="10"/>
      <Setter Property="Orientation" Value="Horizontal"/>
      <Setter Property="StepFrequency" Value="10"/>
      <Setter Property="Minimum" Value="900"/>
      <Setter Property="Maximum" Value="2500"/>
      <Setter Property="Value" Value="1300"/>
</Style>

...

<Slider Style="{StaticResource ELOSlider}" />

めちゃくちゃです(スライダーが動かなくなり、何もできません):

スライダーすら動かない

そうしないと 900 にならないため、スタイルは認識されますが、スライダーが正しく表示されないのはなぜですか?

私は何を間違っていますか?それは本当に私を困惑させます。

4

1 に答える 1

1

私は実際に問題を見つけました。スタイリング エンジンが をSetters順次適用しているようです。

デフォルトではに設定さMinimumれて900いるため、 に設定しようとすると失敗するはずです。次のように逆にすると、うまく機能します。一種の直感に反する...特に警告が出力されないため(そして、コントロールを台無しにしないように、完全に拒否されると予想されます...)Maximum1Setters900

<Style x:Key="ELOSlider" TargetType="Slider">
    <Setter Property="Maximum" Value="2500"/>
    <Setter Property="Value" Value="1300"/>
    <Setter Property="Minimum" Value="900"/>
    <Setter Property="IsThumbToolTipEnabled" Value="True"/>
    <Setter Property="SmallChange" Value="10"/>
    <Setter Property="Orientation" Value="Horizontal"/>
    <Setter Property="StepFrequency" Value="10"/>
</Style>
于 2013-03-05T07:51:59.583 に答える