私は独自のスライダテンプレートとスタイルを作成しています。基本的なスライダに似ていますが、トラックバーには適切な間隔で円(楕円)が含まれています。バーの円の数は、スライダの親指が正確に停止するようにする必要があります。WPF変数の要素数
簡単な近似では、コントロール内にSlider.Maximum - Slider.Minimum/StepSize楕円が存在する必要があります。しかし、私の知る限りでは、xamlから何かの可変数を指定する方法はありません。
これは、要約すると、私が達成したいと思い何を表すコード:
は<ControlTemplate x:Key="SliderHorizontal" TargetType="{x:Type Slider}">
<Grid Height="4">
<Border x:Name="TrackBackground">
<Rectangle x:Name="PART_SelectionRange" Fill="{StaticResource SliderThumb.Track.BackgroundSelected}"
HorizontalAlignment="Left" Margin="0 0 16 0" Visibility="Hidden"/>
</Border>
<Grid>
<!-- Have a variable ammount of column definitions and ellipses -->
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4"/>
<ColumnDefinition Width="*"/>
...
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="4"/>
</Grid.ColumnDefinitions>
<Ellipse Grid.Column="0" Fill="White"/>
...
<Ellipse Grid.Column="X" Fill="White"/>
</Grid>
<Track x:Name="PART_Track">
<Track.Thumb>
...
</Track.Thumb>
</Track>
</Grid>
<ControlTemplate.Triggers>
...
</ControlTemplate.Triggers>
</ControlTemplate>
私のコードは、これまでのところ、それはdoesnのとき、私は非常に悪いに見える楕円の固定ammountを、使用することができますスライダで表される値と一致しません。
私はWPFの新機能なので、コードビハインドからこれを行うのはどういうことか分かりません。スライダーを継承したクラスを作成し、そこに楕円を追加することはできますか?もしそうなら、私はそれを行う簡単な例を得ることができますか?
これは、あなたの質問に直接関係しませんが、あなたはWPFに新しいしている場合、あなたはMVVMパターンを使用していくつかのチュートリアルをチェックアウトする必要があります。 WPFはその方法で作業するのがはるかに簡単で、早期に学習してくれてありがとうございます。 –