跳到主要内容

ShaderMask

使用着色器生成的遮罩来控制其子控件的控件。

例如,ShaderMask 可以使用线性渐变遮罩来逐渐淡出子控件的边缘。

示例

Live 示例

在图像边缘添加粉红色发光

import flet as ft

def main(page: ft.Page):
page.add(
ft.Row(
[
ft.ShaderMask(
ft.Image(
src="https://picsum.photos/200/200?1",
width=200,
height=200,
fit=ft.ImageFit.FILL,
),
blend_mode=ft.BlendMode.MULTIPLY,
shader=ft.RadialGradient(
center=ft.alignment.center,
radius=2.0,
colors=[ft.colors.WHITE, ft.colors.PINK],
tile_mode=ft.GradientTileMode.CLAMP,
),
)
]
)
)

ft.app(target=main)

逐渐淡出图像到底部边缘

import flet as ft

def main(page: ft.Page):
page.add(
ft.Row(
[
ft.ShaderMask(
ft.Image(src="https://picsum.photos/100/200?2"),
blend_mode=ft.BlendMode.DST_IN,
shader=ft.LinearGradient(
begin=ft.alignment.top_center,
end=ft.alignment.bottom_center,
colors=[ft.colors.BLACK, ft.colors.TRANSPARENT],
stops=[0.5, 1.0],
),
border_radius=10,
),
]
)
)

ft.app(target=main)

属性

blend_mode

应用着色器到 content 时使用的混合模式。

属性值是 BlendMode 枚举,默认为 MODULATE

border_radius

边框半径是 border_radius.BorderRadius 类的实例。

content

要应用着色器的子控件。

shader

使用渐变作为着色器。值必须是以下类之一的实例: