如何在MAUI中为Border创建正确的Style样式?
解决MAUI中Border Style设置渐变Stroke的XFC0040错误
你遇到的XFC0040错误,核心原因是MAUI的Style Setter不支持通过链式属性路径(比如Stroke.LinearGradientBrush.EndPoint)设置嵌套属性,Setter的Property必须是直接的BindableProperty,不能用这种层级嵌套的路径写法。
修正后的Style代码
把渐变笔刷的完整定义直接放在Stroke属性的Setter中,和你在Border控件内的写法结构一致,就能解决问题:
<Style TargetType="Border" x:Key="borderFlashCard"> <!-- 正确定义渐变Stroke --> <Setter Property="Stroke"> <Setter.Value> <LinearGradientBrush EndPoint="0,1"> <GradientStop Color="{StaticResource Gray100}" Offset="0.1" /> <GradientStop Color="{StaticResource Gray500}" Offset="1.0" /> </LinearGradientBrush> </Setter.Value> </Setter> <!-- 保留你原来的其他属性设置 --> <Setter Property="StrokeShape" Value="RoundRectangle 13" /> <Setter Property="StrokeThickness" Value="5" /> <Setter Property="HeightRequest" Value="90" /> <Setter Property="WidthRequest" Value="100" /> </Style>
关键修正点
- 移除了错误的
Value="Black}"(注意多了一个多余的闭合大括号),替换为完整的LinearGradientBrush定义 - 不再拆分设置
Stroke的子属性,而是直接给Stroke赋值完整的渐变笔刷对象 - 保留了你原本需要的其他Border样式属性
之后你的Border控件就可以正常引用这个Style,无需再在控件内重复定义Stroke属性。
内容的提问来源于stack exchange,提问作者Enrico
相关产品推荐
相关产品推荐

