跟进this question后,为什么{x:Null}
不再是Setter.Value
的有效选项?
将此代码放入UWP应用程序的资源字典中:
<Style x:Key="MyList"
TargetType="ListView">
<Setter Property="Transitions"
Value="{x:Null}"/>
</Style>
并在任何ListView
中使用它:
<ListView Style="{StaticResource MyList}"/>
您的应用会崩溃。这也是一个令人讨厌的崩溃,它会在你的调试器中没有正确破坏应用程序。
此外,设计师抱怨灾难性的失败:
我知道将值设置为{x:Null}
是有效的。如果您直接设置<ListView Transitions="{x:Null}"/>
,那么它可以正常工作......正如预期的那样。
那么......风格设定者怎么了? ......关心解释,微软?是否至少有另一种方法?
答案 0 :(得分:3)
这真的是一种奇怪的行为,总的来说因为你解释了直接设置为null的作品而且风格没有。我找到的唯一选择就是设置一个明确的过渡集合:
<Page.Resources>
<Style x:Key="MyList" TargetType="ListView">
<Setter Property="Transitions" >
<Setter.Value>
<TransitionCollection></TransitionCollection>
</Setter.Value>
</Setter>
<Setter Property="DataContext" Value="{x:Null}"/>
</Style>
我设置了可以设置为null的DataContext示例,它表示相同的错误,但编译并运行。
我知道这不是最好的解决方案,但它是一个明确的transitioncollection的解决方法。
答案 1 :(得分:0)
in this quiestion 空值内,一个模板 i've answered您可以找到更多答案
<Color x:Key="BgNull"></Color>
<Style x:Key="L2" TargetType="TextBox">
<Setter Property="Background" Value="{StaticResource BgNull}"/>
</Style>