我遇到了 WinRT 项目中 slider 大小的问题。我的 xaml 中有简单的默认 slider ,如下所示:
<Slider x:Name="slider1"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
BorderBrush="White"
BorderThickness="5"/>
这个 slider 在整个页面上都有宽度,当这个页面改变它的大小时, slider 也必须改变他的大小。但这就是问题所在。如果我将 slider 的值设置为最大值并将应用程序窗口拖动到纵向状态, slider 的大小不会在 View 中改变。它只有在操作后才会变成实际大小。我已经尝试监视数据,当触发 SizeChanged 事件并且 slider 采用正确的 NewSize 时,但不会更改其 View 。 在下面的屏幕上,您可以看到我在说什么。 Slider 的 body 以纵向状态(或任何其他状态)从窗口中出来。
那么这是默认控件的错误吗?我该如何解决这个问题?
请您参考如下方法:
我想出了一些解决方法来解决这个问题,但解决方案非常难看。
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;
});
}
如果有人想出更好的办法,请告诉我。
