我需要创建一些如下图所示的控件,但我不知道要使用哪个控件或如何使它看起来像我想要的那样:
1)一个水平条,这样我就可以在代码中动态改变它的长度。
我尝试过使用“进度条”控件,但我无法摆脱绿色发光效果,也无法摆脱白色边框:
2) 一个看起来像这样的滑块:
请注意,我分别拥有滑块的所有图像。(带有“加号”和“减号”按钮的背景,拇指等..)
3)动态改变刀片的数量,比如(当我有刀片的图像时):
我需要创建一些如下图所示的控件,但我不知道要使用哪个控件或如何使它看起来像我想要的那样:
1)一个水平条,这样我就可以在代码中动态改变它的长度。
我尝试过使用“进度条”控件,但我无法摆脱绿色发光效果,也无法摆脱白色边框:
2) 一个看起来像这样的滑块:
请注意,我分别拥有滑块的所有图像。(带有“加号”和“减号”按钮的背景,拇指等..)
3)动态改变刀片的数量,比如(当我有刀片的图像时):
您必须为滑块、进度条创建自定义模板。
在MSDN上,有标准 WPF 控件的样式和模板。
然后,对于您的“刀片”控件,我认为您将不得不创建一个新的自定义控件,可能基于RangeBase
.
对于进度条,您可以从以下内容开始:
<ProgressBar VerticalAlignment="Top" Value="60" Maximum="100">
<ProgressBar.Template>
<ControlTemplate TargetType="{x:Type ProgressBar}" >
<Grid Height="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Grid x:Name="PART_Track" ClipToBounds="True">
<Rectangle x:Name="PART_Indicator" Margin="-7,0,0,0" HorizontalAlignment="Left" Fill="Green" RadiusX="7" RadiusY="7" Height="14"/>
</Grid>
<TextBlock Grid.Column="1" Text="{Binding Value, RelativeSource={RelativeSource TemplatedParent}, StringFormat={}{0} %}" Foreground="Black" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</ProgressBar.Template>
</ProgressBar>