以下两个之间有什么区别?
Background="{x:Null}"
和
Background="Transparent"
答案 0 :(得分:47)
Transparent
将创建一个初始化为透明颜色的画笔,null将该属性设置为null,这意味着目标属性没有附加画笔。
在WPF中,将画笔设置为元素通常很重要。例如,如果要跟踪元素中的鼠标按下,则必须设置背景。如果您不想设置纯色(使其不透明),则可以使用透明刷。这可以使用字符串值“Transparent”来完成
不同之处在于方式,财产的设定方式。如果为brush-property指定null,则该属性将设置为null。如果您将字符串设置为“透明”,则将字符串转换为画笔的默认value-converter会将其转换为Brushes.Transparent
画笔。
简短版:{x:Null}
将目标属性设置为null。 “透明”将目标属性设置为透明画笔。
答案 1 :(得分:21)
两者都设置了Background
属性的本地值。前者将其设置为null
,后者将其设置为Brushes.Transparent
。
有几点需要注意:
null
不与完全不设置相同。由于依赖项属性获得其有效值from multiple sources,因此设置本地值(即使它是null
)可以优先于可能来自其他地方的值,例如样式或动画。IsHitTestVisible
属性。无论用于呈现UIElement
的画笔如何,此属性都允许您控制命中测试可见性。答案 2 :(得分:8)
{x:Null}
将无法点击,Transparent
将会。
答案 3 :(得分:4)
Transparent
背景元素在点击背景时会收到鼠标点击事件,而Null
元素则不会。
答案 4 :(得分:0)
Transparent
笔刷将导致背景的Alpha通道设置为100%透明的 0
{x:Null}
值将导致WPF将背景设置为默认控件颜色,对于某些属性,例如DataGrid.RowBackground
和 Transparent < / em>其他大多数属性。
指定画笔颜色是一个好习惯,因为将画笔设置为
Null
可能会导致不希望的默认颜色。