{x:空}与透明?
以下两者有什么区别?
Background="{x:Null}"
和
Background="Transparent"
Transparent
将创build一个初始化为透明颜色的画笔,null将该属性设置为null,这意味着目标属性没有附加画笔。 在WPF中,将画刷设置为元素通常很重要。 例如,如果您想要跟踪元素中的鼠标降落,则必须设置背景。 如果您不想设置纯色(使其不透明),则可以使用透明画笔。 这可以通过string值“透明”来完成。
区别在于财产如何设置。 如果您为brush-property分配null,则该属性将被设置为null。 如果将string设置为“Transparent”,则将string转换为画笔的默认值转换器会将其转换为Brushes.Transparent
画笔。
短版本 : {x:Null}
将目标属性设置为null。 “透明”将目标属性设置为透明画笔。
两者都是设置Background
属性的本地值 。 前者将其设置为null
,后者将其设置为Brushes.Transparent
。
有几点需要注意:
- 将该值设置为
null
与完全不设置它是不一样的。 由于依赖项属性从多个来源获取其有效值,因此设置本地值(即使为null
)可能优先于可能来自其他位置(例如样式或animation)的值。 - 控制命中testing可见性的另一个选项是
IsHitTestVisible
属性。 此属性允许您控制命中testing可见性,而不pipeUIElement
所呈现的画笔如何。
{x:Null}
将不可点击, Transparent
。
也看到这个。
具有Transparent
背景的元素在点击背景时接收鼠标点击事件,具有Null
元素不会。