滑块尺寸变化

时间:2014-12-10 14:02:11

标签: c# xaml user-interface windows-runtime

我遇到了WinRT项目中滑块大小的问题。我的xaml中有一个简单的默认滑块,如下所示:

        <Slider x:Name="slider1" 
            HorizontalAlignment="Stretch"
            VerticalAlignment="Top"
            BorderBrush="White" 
            BorderThickness="5"/>

此滑块沿所有页面都有宽度,当此页面更改其大小时,滑块也必须更改其大小。但这是问题所在。如果我将滑块的值设置为最大点并将应用程序窗口拖动到纵向状态,则滑块的大小不会在视图上发生变化。只有在操作之后它才变成实际尺寸。我已经尝试监视数据,当触发SizeChanged事件并且滑块采用正确的NewSize时,但是没有改变它的视图。 在下面的屏幕上,你可以看到我在说什么。滑块的身体以纵向状态(或任何其他状态)离开窗户。

enter image description here

默认控制的错误以及我如何解决这个问题呢?

1 个答案:

答案 0 :(得分:3)

我找到了解决这个问题的一些解决方法,但解决方案非常难看。

private void Slider1_OnSizeChanged(object sender, SizeChangedEventArgs e)
{
    var value = this.slider1.Value;
    this.slider1.Value = 0;

    this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        this.slider1.Value = value;
    });
}

如果有人会想出更好的东西,请告诉我。