Xaml 如何在WinRT应用程序的VisualState情节提要中设置DependencyProperty.Unset值?

Xaml 如何在WinRT应用程序的VisualState情节提要中设置DependencyProperty.Unset值?,xaml,windows-runtime,winrt-xaml,visualstatemanager,Xaml,Windows Runtime,Winrt Xaml,Visualstatemanager,我正在开发Windows 8.1应用商店应用程序,在一个页面上,我需要设置为横向模式MyControl.Width=450,但在纵向模式下,我希望控件扩展到所有可用空间。 作为一种解决方法,可以使用MinWidth的HorizontalAlighment Right vs Stretch,但我对使用VisualState情节提要的解决方案感兴趣 使用对象动画使用关键帧设置特定宽度很容易,如下所示: <ObjectAnimationUsingKeyFrames Duration="0" St

我正在开发Windows 8.1应用商店应用程序,在一个页面上,我需要设置为横向模式MyControl.Width=450,但在纵向模式下,我希望控件扩展到所有可用空间。 作为一种解决方法,可以使用MinWidth的HorizontalAlighment Right vs Stretch,但我对使用VisualState情节提要的解决方案感兴趣

使用对象动画使用关键帧设置特定宽度很容易,如下所示:

<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="MyControl" Storyboard.TargetProperty="Width">
    <DiscreteObjectKeyFrame KeyTime="0" Value="450" />
</ObjectAnimationUsingKeyFrames>


但是我不知道如何在这里设置dependencProperty.UnsetValue,换句话说,将属性设置为默认值,UnsetValue。注意:我正在Windows 8.1应用程序中寻找解决方案。在WPF XAML中可能很容易实现,但在Windows 8.1中,XAML有点有限。谢谢

此片段看起来像单个VisualState的内容。同一VisualState组中的每个VisualState都是互斥的。如果在同一VisualStateGroup中有一个状态没有修改Width属性,那么您应该能够在这两个状态之间切换,并有效地设置/取消设置该值。

您可以使用代码隐藏中的“Page_SizeChanged”事件来实现它。