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