因为项目需要,在学习wpf,在这期间在用slider时遇到了一些问题,现整理如下,
slider控件模糊阴影
<Slider.Effect>
<DropShadowEffect BlurRadius="5" Color="White" Opacity="0.7" ShadowDepth="7"/>
</Slider.Effect>
slider控件value值默认为Double类型,让其为整数方式:
1:设置 TickFrequency属性
2:设置IsSnapToTickEnabled属性:以刻度线对齐
3:设置刻度线出线在滚动条的那边:TickPlacement
4:设置最大值,最小值: Maximum="100" Minimum="0"
例子如下:
<Slider x:Name="sld_question" VerticalAlignment="Center" Maximum="100" Minimum="0" Interval="5" LargeChange="10" TickPlacement="TopLeft" TickFrequency="2.5">
<Slider.Effect>
<DropShadowEffect BlurRadius="5" Color="White" Opacity="0.7" ShadowDepth="7"/>
</Slider.Effect>
</Slider>
在样式文件style.xml中设置采用那种样式:
<!--slider的样式的整体控制-->
<Style TargetType="{x:Type Slider}">
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="IsSnapToTickEnabled" Value="True"/>
<!--根据Orientation属性的值不同来采用不同的样式-->
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="MinWidth" Value="104" />
<Setter Property="MinHeight" Value="21" />
<Setter Property="Template" Value="{StaticResource HorizontalSlider}" />
</Trigger>
<Trigger Property="Orientation" Value="Vertical">
<Setter Property="MinWidth" Value="21" />
<Setter Property="MinHeight" Value="104" />
<Setter Property="Template" Value="{StaticResource VerticalSlider}" />
</Trigger>
</Style.Triggers>
</Style>
<!--水平slider的样式-->
<ControlTemplate x:Key="HorizontalSlider" TargetType="{x:Type Slider}">
<Grid>
<Grid.RowDefinitions>
<!-- 调整布局-->
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" MinHeight="{TemplateBinding Slider.MinHeight}" />
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--竖线的宽度-->
<TickBar
Name="TopTick"
SnapsToDevicePixels="True"
Placement="Top"
Fill="{StaticResource GlyphBrushSlider}"
Height="30"
Visibility="Collapsed" />
<!--slider中间的滚动条的宽度-->
<Border
Name="TrackBackground