C# xaml中元素属性的执行顺序
在下面的示例中,在初始化列表属性之后,是否有方法最后执行附加的行为C# xaml中元素属性的执行顺序,c#,wpf,xaml,attached-properties,C#,Wpf,Xaml,Attached Properties,在下面的示例中,在初始化列表属性之后,是否有方法最后执行附加的行为 <LinearGradientBrush local:FreezeBehavior.IsFrozen="True"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="White" Offset="1"/> </LinearGradientBrush> 可以这样做 <Gradien
<LinearGradientBrush local:FreezeBehavior.IsFrozen="True">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
</LinearGradientBrush>
可以这样做
<GradientStopCollection x:Key="SomeKey">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
</GradientStopCollection>
<LinearGradientBrush GradientStops="{StaticResource SomeKey}" local:FreezeBehavior.IsFrozen="True"/>
但它需要创建几十个不必要的ResourceDictionary
条目
附言:(如果有人认为这是重复的,那么投票关闭它,而不是这一个,在这里我已经知道了问题所在,并且对其进行了更清楚的描述)。我猜执行流是基于XAML解析器的,并在解析属性中显示它们。因此,您可以尝试对属性声明进行重新排序。大概是这样的:
<LinearGradientBrush>
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
<local:FreezeBehavior.IsFrozen>True</local:FreezeBehavior.IsFrozen>
</LinearGradientBrush>
真的
可能您必须使用True
作为FreezeBehavior.isfreezed