【问题标题】:Making Slider thumb progression moving smoothly, in UWP Xaml在 UWP Xaml 中使滑块拇指进展顺利移动
【发布时间】:2020-05-18 17:33:33
【问题描述】:

我想使用 Slider 作为进度条。我有这个滑块值的绑定。每秒触发此绑定(使用计时器,已用时间触发,间隔为 1 秒,需要)。问题是,滑块的拇指移动不顺畅,每秒它会跳到下一个位置。我怎样才能使它顺利?例如:

int time = 0;
Time_Elapsed(sender, args){
    time++;
    CheckTime();
}
CheckTime(){
    if(time == 60){
        SliderValue = (time*100)/totalTime;
        time = 0;
    }
} 
SliderValue{
    get{ return sliderValue;}
    set{ SetProperty(ref sliderValue, value);}
}

XAML:

<Slider Value={Binding SliderValue,Mode=TwoWay}
        Maximum=100
        Minimum=0/>

【问题讨论】:

    标签: c# uwp


    【解决方案1】:

    正如 Khaled 所说,如果您想流畅地移动拇指,不建议使用计时器。

    此时可以使用Storyboard

    <Page
        ...
        Loaded="Page_Loaded">
        <Page.Resources>
            <Storyboard x:Name="SliderAnimation">
                <DoubleAnimation Storyboard.TargetName="TestSlider"
                                 Storyboard.TargetProperty="Value"
                                 EnableDependentAnimation="True"
                                 From="0" To="100" Duration="0:0:10"
                                 />
            </Storyboard>
        </Page.Resources>
        <Grid>
            <Slider Minimum="0" Maximum="100" x:Name="TestSlider"/>
        </Grid>
    </Page>
    
    private void Page_Loaded(object sender, RoutedEventArgs e)
    {
        SliderAnimation.Begin();
    }
    

    此动画显示,在 10 秒内,Slider.Value 从 0 变为 100。

    【讨论】:

      【解决方案2】:

      您看到的行为是预期的,因为您将 Value 属性设置为精确值。对于动画,您应该查看Storybords and animations。抱歉,我从来没有使用过它,所以我没有一个可行的例子。

      【讨论】:

        猜你喜欢
        • 2022-01-12
        • 2020-01-16
        • 2023-03-07
        • 2021-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多