我正在創建自己的滑塊模板和樣式。它與基本滑塊類似,但軌道欄包含具有適當間隔的圓圈(橢圓)。欄中的圓圈數量應該使滑塊的拇指停在它們的正上方。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>
到目前爲止我的代碼讓我當它不使用省略號的固定ammount的,看起來很糟糕不匹配由滑塊表示的值。
我是新來的WPF,所以我不知道從代碼隱藏做到這一點會帶來什麼。我可以簡單地創建一個從Slider繼承的類並在那裏添加Ellipses?如果是這樣,我可以做一個簡單的例子嗎?
這並不直接關係到你的問題,但如果你是新的WPF,你應該檢查出使用MVVM模式的一些教程。 WPF用這種方式工作起來會容易得多,而且稍後你會很快感謝你對它的早期學習。 –