以下两个有什么区别?
Background="{x:Null}"
Run Code Online (Sandbox Code Playgroud)
和
Background="Transparent"
Run Code Online (Sandbox Code Playgroud)
HCL*_*HCL 52
Transparent
将创建一个初始化为透明颜色的画笔,null将该属性设置为null,这意味着目标属性没有附加画笔.在WPF中,将画笔设置为元素通常很重要.例如,如果要跟踪元素中的鼠标按下,则必须设置背景.如果您不想设置纯色(使其不透明),则可以使用透明刷.这可以使用字符串值"Transparent"来完成.
不同之处在于方式,财产的设定方式.如果为brush-property指定null,则该属性将设置为null.如果设置字符串"Transparent",则将字符串转换为画笔的默认值转换器会将其转换为Brushes.Transparent
画笔.
简短版本:{x:Null}
将目标属性设置为null."透明"将目标属性设置为透明画笔.
Ken*_*art 22
两者都设置本地值的的Background
属性.前者设定它,null
而后者设定它Brushes.Transparent
.
有几点需要注意:
null
完全不设置的值不同.由于依赖项属性从多个源获取其有效值,因此设置本地值(即使它是null
)可以优先于可能来自其他位置的值,例如样式或动画.IsHitTestVisible
属性.此属性允许您控制命中测试可见性,无论UIElement
渲染的画笔如何.