我一直在钻探XAML,试图将它的实际效果拼凑起来。
我从我下载的示例代码之一获得了以下XAML,earlier question已经解释了我的大部分困惑,但是......我仍然试图理解为什么以下元素有一个完全引用另一种类型的子元素。
<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<VisualStateManager.VisualStateGroups>
<!-- Snipped code irrelevant - just various storyboards-->
</VisualStateManager.VisualStateGroups>
<Grid x:Name="InnerGrid"
Opacity="1"
Margin="0,5,0,5"
Background="{StaticResource TransparentColor}">
<ContentPresenter x:Name="ContentPresenter"
Foreground="{StaticResource TransparentColor}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
</Border>
查看XAML语法文档,VisualStateManager
是PropertyElement,但我感到困惑,因为VisualStateGroups似乎不是Border
的属性。我相信这个例子是正确的,但我需要有人向我解释,一个元素怎么不是一个“正确的”Child
元素(就像Grid
那样),是一个合法的部分。父元素?
答案 0 :(得分:1)
VisualStateManager.VisualStateGroups是附加属性。阅读以下主题,它可能会对您有所帮助:http://msdn.microsoft.com/en-us/library/ms749011.aspx