2

有没有办法在 windows phone 8 滑块中添加步骤我希望我的滑块只接受值 0、1、2、3、4。

此外,我希望模板是离散的,在滑块上的每个值中显示一条细线,就像 Windows phone 8 设置中的轻松访问一样。

滑块应该像 4 个长方形薄盒子,如果我滑动就会填满,

提前致谢

4

3 回答 3

2

您可以尝试注册一个附加属性来为您进行数学舍入,而不是使用第三方控件。作为一个非常快速和肮脏的例子(这可能是需要发生的事情),你可以创建这样的东西。

public class SliderExtensions
{
    public static readonly DependencyProperty IntegerValueProperty = DependencyProperty.RegisterAttached("IntegerValue", typeof(int), typeof(SliderExtensions), new PropertyMetadata(1));

    public static void SetIntegerValue(DependencyObject element, int value)
    {
        ((Slider)element).ValueChanged += (s, e) => { ((Slider)s).Value = Math.Round(((Slider)s).Value); };
    }

    public static int GetIntegerValue(DependencyObject element)
    {
        return (int)((Slider)element).Value;
    }
}

然后在您的 Slider 中使用它,如下所示。

<StackPanel>
    <Slider x:Name="sld" Minimum="0" Maximum="4" SmallChange="1" helper:SliderExtensions.IntegerValue="0" />
    <TextBlock Text="{Binding ElementName=sld, Path=Value}" />
</StackPanel>

不要忘记将“helper”命名空间添加到您的 XAML 中,除了快速查看之外,这在很大程度上未经测试。

于 2013-10-03T08:13:53.017 回答
1

使用滚动查看器,您可以制作滑块,也可以使用 telrik control.It 提供良好的滑块控制,请参阅下面的链接

幻灯片视图

用于 wp 的幻灯片 Redcontrol

希望对你有帮助

于 2013-10-03T07:49:36.470 回答
0
<Grid>
                   <Grid.ColumnDefinitions>
                        <ColumnDefinition></ColumnDefinition>
                        <ColumnDefinition></ColumnDefinition>
                        <ColumnDefinition></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <TextBlock Name="TotalPlanedLeave" Grid.ColumnSpan="2" Text="Total Planed Leaves :"></TextBlock>
                    <TextBlock Grid.Column="2" HorizontalAlignment="Left" Name="l1" Text="1" ></TextBlock>
</Grid>

<Slider Name="TotalPlanedLeaveS" ValueChanged="TotalPlanedLeaveS_ValueChanged" ></Slider>    

在后面的代码中

 private void TotalPlanedLeaveS_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            l1.Text = (Convert.ToInt32(TotalPlanedLeaveS.Value)).ToString();

        }
于 2014-04-03T10:04:58.513 回答