XAML中是否存在指定对象属性绑定的替代语法?
XAML属性的替代语法说明
你提到的这种写法属于XAML的属性元素语法,是可以实现的,但你给出的示例语法有误,需要调整。
常规属性语法 vs 属性元素语法
- 常规写法(属性语法):
<Ellipse Fill="{Binding EllipseFillColor}" /> - 对应的属性元素正确写法:
如果你的EllipseFillColor绑定的是一个Brush类型的对象,可以这么写:
如果绑定的是<Ellipse> <Ellipse.Fill> {Binding EllipseFillColor} </Ellipse.Fill> </Ellipse>Color类型的值,则需要用SolidColorBrush包装:<Ellipse> <Ellipse.Fill> <SolidColorBrush Color="{Binding EllipseFillColor}" /> </Ellipse.Fill> </Ellipse>
为什么你的示例写法不对?
你写的<Fill Binding="EllipseFillColor"/>不符合XAML语法规范:
Fill是Ellipse的属性,作为属性元素时需要明确指定所属的父类型(即Ellipse.Fill)——Fill并非Ellipse的默认内容属性,所以不能直接省略前缀。Binding不是Fill元素的属性,Fill接受的是Brush类型的值,绑定需要直接应用在对应的值上,而非给Fill元素添加Binding属性。
属性元素语法的优势在于处理复杂类型的属性值(比如需要嵌套多个元素定义属性内容),简单绑定用常规属性语法会更简洁。
内容的提问来源于stack exchange,提问作者Betty Crokker
相关产品推荐
相关产品推荐

