.NET 多平台应用 UI (.NET MAUI) Shadow 类围绕布局或视图绘制阴影。 VisualElement 类具有 Shadow 可绑定属性(类型为 Shadow),该属性允许将阴影添加到任何布局或视图。
Shadow 类定义以下属性:
-
Radius,类型为
float
,定义用于生成阴影的模糊半径。 此属性的默认值为 10。 -
Opacity,其类型为
float
,指示阴影的不透明度。 此属性的默认值为 1。 - Brush,类型为 Brush,表示用于着色阴影的画笔。
-
Point
类型的 Offset指定阴影的偏移量,该偏移量表示创建阴影的光源的位置。
这些属性由 BindableProperty 对象提供支持,这意味着这些属性可以是数据绑定的目标,并设置样式。
重要
Brush
属性目前仅支持 SolidColorBrush。
创建阴影
若要向控件添加阴影,请将控件的 Shadow 属性设置为定义阴影的格式化字符串。 有三种支持的字符串格式:
color, offset X, offset Y
:<Image Source="dotnet_bot.png" WidthRequest="250" HeightRequest="310" Shadow="#000000 4 4" />
offset X, offset Y, radius, color
:<Image Source="dotnet_bot.png" WidthRequest="250" HeightRequest="310" Shadow="5 8 8 rgb(6, 201, 198)" />
offset X, offset Y, radius, color, opacity
:<Image Source="dotnet_bot.png" WidthRequest="250" HeightRequest="310" Shadow="4 4 16 AliceBlue 0.5" />
可以使用以下格式指定颜色:
格式 | 例 | 评论 |
---|---|---|
十六进制 |
#rgb 、#argb 、#rrggbb 、#aarrggbb |
|
RGB |
rgb(255,0,0) ,rgb(100%,0%,0%) |
有效值为 0-255 或 0%-100%。 |
RGBA |
rgba(255, 0, 0, 0.8) ,rgba(100%, 0%, 0%, 0.8) |
有效的不透明度值为 0.0-1.0。 |
HSL | hsl(120, 100%, 50%) |
h 的有效值为 0-360,s 和 l 的值为 0%-100%。 |
HSLA | hsla(120, 100%, 50%, .8) |
有效的不透明度值为 0.0-1.0。 |
HSV | hsv(120, 100%, 50%) |
h 的有效值为 0-360,s 和 v 的值为 0%-100%。 |
HSVA | hsva(120, 100%, 50%, .8) |
有效的不透明度值为 0.0-1.0。 |
预定义颜色 |
fuchsia 、AquaMarine 、limegreen |
颜色字符串不区分大小写。 |
以下 XAML 示例演示如何使用属性元素语法向 Image 添加阴影:
<Image Source="dotnet_bot.png"
WidthRequest="250"
HeightRequest="310">
<Image.Shadow>
<Shadow Brush="Black"
Offset="20,20"
Radius="40"
Opacity="0.8" />
</Image.Shadow>
</Image>
在此示例中,在图像的轮廓周围绘制黑色阴影,其偏移量指定它显示在图像的右侧和底部:
如以下示例所示,还可以为剪裁后的对象添加阴影。
<Image Source="https://aka.ms/campus.jpg"
Aspect="AspectFill"
HeightRequest="220"
WidthRequest="220"
HorizontalOptions="Center">
<Image.Clip>
<EllipseGeometry Center="220,250"
RadiusX="220"
RadiusY="220" />
</Image.Clip>
<Image.Shadow>
<Shadow Brush="Black"
Offset="10,10"
Opacity="0.8" />
</Image.Shadow>
</Image>
在此示例中,在剪裁图像的 EllipseGeometry 轮廓周围绘制黑色阴影:
有关剪辑元素的详细信息,请参阅 使用几何体剪辑。