首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF - RangeSlider不会只显示整数

WPF - RangeSlider不会只显示整数
EN

Stack Overflow用户
提问于 2017-05-27 11:47:56
回答 2查看 950关注 0票数 1

我正在做一个我需要有价格的项目。所以我使用了来自扩展WPF工具包扩展WPF工具包来选择价格范围。

我还制作了两个文本块,显示较低和更高的值。但问题是它只显示带有小数的数字。我要整数。

代码语言:javascript
复制
<wpfTool:RangeSlider Name="rangeSlider" Grid.Row="4" LowerValue="300" Minimum="300" Maximum="2300" HigherValue="2300" LowerValueChanged="RangeSlider_LowerValueChanged"/>
        <WrapPanel Orientation="Horizontal" Margin="0,0,26.983,0">
            <TextBlock Text="{Binding LowerValue, ElementName=rangeSlider, UpdateSourceTrigger=PropertyChanged}"/>
            <TextBlock Width="50"/>
            <TextBlock Text="{Binding HigherValue, ElementName=rangeSlider, UpdateSourceTrigger=PropertyChanged}" Width="44"/>
            <TextBlock Text="€" Width="11"/>
        </WrapPanel>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-27 17:53:52

RangeSlider的模板中有2个Slider控件。您可以使Slider只选择整数。相关属性是IsSnapToTickEnabled。要为嵌套滑块更改该属性,请将样式添加到RangeSlider参考资料中:

代码语言:javascript
复制
<wpfTool:RangeSlider Name="rangeSlider" Grid.Row="4" 
                     LowerValue="300" Minimum="300" Maximum="2300" HigherValue="2300" 
                     LowerValueChanged="RangeSlider_LowerValueChanged"/>
    <wpfTool:RangeSlider.Resources>
        <Style TargetType="Slider">
            <Setter Property="IsSnapToTickEnabled" Value="True"/>
        </Style>
    </wpfTool:RangeSlider.Resources>
</wpfTool:RangeSlider>
票数 1
EN

Stack Overflow用户

发布于 2017-05-27 13:03:33

你只需要一个转换器就像这样..。

代码语言:javascript
复制
internal class MyConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if(value is double)
        {
            return ((double)value).ToString("f0");
        }
        return "";
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

在XAML中这样声明..。

代码语言:javascript
复制
<Window.Resources>
    <local:MyConverter x:Key="MyConverter"/>
</Window.Resources>

像这样在XAML中引用..。

代码语言:javascript
复制
        <TextBlock Text="{Binding HigherValue, Converter={StaticResource MyConverter}, ElementName=rangeSlider, UpdateSourceTrigger=PropertyChanged}" Width="44"/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44216470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档