WPF中怎么使slider控件的值只取整数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中怎么使slider控件的值只取整数?相关的知识,希望对你有一定的参考价值。

参考技术A

首先注意而RangeBase是基于浮点double类型的,不是基于整数int的,WPF中的许多度量单位都是基于浮点的。     

对于Slider来说,RangeBase的Minimum(最小值)默认是0,Maximum(最大值)默认是10,Value(当前值)默认是0。     

接下来就是RangeBase的剩余两个变量,SmallChange和LargeChange。SmallChange用来当Slider有焦点时,使用键盘的左右箭头来改变值的大小,而LargeChange则是点击Slider条的空白部分造成值的改变大小(和滚动条类似)。     

SmallChange默认是0.1,LargeChange默认是1。

注意由于浮点数的表示涉及到精度的问题,某些值的表示无法准确而只能存储成近似值,所以一个空空的默认Slider会有如下问题:     

首先XAML,一个默认Slider,下面一个TextBlock绑定Value属性来显示当前值:

2021-08-14 WPF控件专题 Slider控件详解

1.Slider 控件介绍

滑块

Maximum Minimum TickFrequency Orientation TickPlacement

Value

移动来选择一个范围的值:改其他控件的属性值 (数值型)

2.具体案例

<Grid>
    <!--滑块  Orientation 方向  TickPlacement 轨道相关的刻度的位置 TickFrequency 刻度之间的间隔 IsSnapToTickEnabled true 值 Int  false 浮点型 IsDirectionReversed true 水平向左  垂直 向下   -->
    <Slider Name="slider1" HorizontalAlignment="Left" Margin="150,10,0,0" VerticalAlignment="Top" Maximum="100" Minimum="0" Value="50" Orientation="Horizontal" TickPlacement="Both" TickFrequency="2" IsSelectionRangeEnabled="True" SelectionStart="20" SelectionEnd="50"  Width="390" Height="35" IsSnapToTickEnabled="True" SmallChange="4" LargeChange="10" IsDirectionReversed="True"/>
    <Label Content="{Binding ElementName=slider1,Path=Value,Mode=OneWay}" HorizontalAlignment="Left" Margin="582,10,0,0" VerticalAlignment="Top" Width="82"/>
    <TextBlock Background="Red"  HorizontalAlignment="Left" Margin="240,105,0,0" TextWrapping="Wrap" Text="Slider" FontSize="{Binding ElementName=slider1,Path=Value,Mode=OneWay}" VerticalAlignment="Top" Opacity="{Binding ElementName=opSlider,Path=Value,Mode=Default}" Width="300" Height="159"/>
    <Slider Name="opSlider" HorizontalAlignment="Left" Margin="150,59,0,0" Minimum="0.2" Maximum="1.0" TickFrequency="0.1"  VerticalAlignment="Top" Width="467"/>
</Grid>

以上是关于WPF中怎么使slider控件的值只取整数?的主要内容,如果未能解决你的问题,请参考以下文章

WPF中怎么使slider控件的值只取整数?

2021-08-14 WPF控件专题 Slider控件详解

WPF:如何使控件在 StackPanel 中拉伸?

c#wpf中slider怎么绑定

请问下WPF的slider样式要如何才能改成下面这样。。。求助下。。。还是说使用其他控件才能做出这种。。。

wpf 的 slider控件问题