{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元素不会。