wpf 开发中的slider控件

本文详细介绍了在WPF中使用Slider控件时如何设置阴影效果、确保value值为整数以及调整样式。通过设置TickFrequency、IsSnapToTickEnabled和TickPlacement属性,可以实现滑块值的整数化。同时,展示了如何在style.xml文件中定义Slider的样式,包括水平和垂直方向的模板,并通过Trigger控制不同TickPlacement的显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为项目需要,在学习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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值