

新闻资讯
技术学院.NET MAUI 中控件阴影通过内置 Shadow 属性实现,支持 XAML 字符串(如“4 4 16 AliceBlue 0.5”)和 C# 对象两种设置方式,Image、Button、Frame、Border 等控件原生支持,Label 和 Entry 等则不支持。
在 .NET MAUI 中,给控件加阴影最直接的方式是使用 Shadow 属性 —— 它是所有 VisualElement 的内置可绑定属性,无需额外样式或自定义渲染器,开箱即用。
Shadow 值是一个格式化字符串,按顺序指定:水平偏移、垂直偏移、模糊半径、颜色(可选透明度)。例如:
Shadow="4 4 16 AliceBlue 0.5"
#87CEFA、RGB 等)
不是所有控件都默认启用阴影渲染,但以下控件原生支持 Shadow 属性:
Image(如示例中的机器人图)Button(含 ImageButton)Frame(注意:Frame 自带边框和背景,Shadow 会叠加在其外侧)Border(MAUI 7+ 引入,适合包裹内容并加阴影)ContentView 或继承 VisualElement 的控件(只要没禁用渲染逻辑)Label、Entry 等轻量控件默认不绘制阴影(无视觉层级需求),强行设置无效 —— 这是设计使然,不是 bug。
XAML 写法(推荐):
C# 代码设置(动态控制):
myImage.Shadow = new Shadow { Offset = new Point(0, 6), Radius = 12, Opacity = 0.125, Color = Colors.Black };
注意:C# 中需实例化 Shadow 对象,而 XAML 使用字符串语法更简洁;两者效果完全一致。
Padding 或设 ClipToBounds="False"(仅对 Layout 类有效)#AARRGGBB 格式(如 #4D000000 表示 30% 黑),比单独写 Opacity 更可控Radius 或 Offset 可能导致性能轻微下降,尤其在列表滚动中大量使用时box-shadow CSS 属性)基本上就这些。Shadow 是 MAUI 中少有“写完就见效”的视觉增强特性,参数少、逻辑直,用对了能快速提升界面质感。