以下两个有什么区别?
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渲染的画笔如何.