【发布时间】:2017-02-13 11:19:00
【问题描述】:
XAML 中的视觉状态
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="SectionHeader">
<VisualState x:Name="SectionHeaderNormal">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1200"/>
</VisualState.StateTriggers>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="txtUser" Storyboard.TargetProperty="Style">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource usernameStyle}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="txtName" Storyboard.TargetProperty="Style">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource nameStyle}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
我需要通过 C# 代码以编程方式创建此 XAML 代码。
当前代码
var vsg = new VisualStateGroup();
var vs = new VisualState();
vs.StateTriggers.Add(new AdaptiveTrigger
{
MinWindowWidth = 1200.0
});
如何创建故事板并添加这些属性?
【问题讨论】:
-
试一试,然后在遇到困难时在此处寻求具体问题的帮助。
-
XAML 本质上将对象序列化为 XML,因此您视为元素或属性的任何内容也作为类或属性存在。您已经使用了
StateTriggers属性。还有一个Storyboard属性。你试过这个吗?你遇到问题了吗? -
如果您查看
VisualState的文档,您可以看到它有[ContentPropertyAttribute("Storyboard")],因此您可以将情节提要分配给同名的属性,即使在XAML 中它没有被包装在<VisualState.Storyboard>...</VisualState.Storyboard>
标签: c# xaml uwp visualstatemanager