MAUI中Border是替代Frame的现代边框控件,支持独立四角圆角、多种形状及虚线边框;新项目应优先使用Border而非Frame。

MAUI 中的 Border 控件是专为添加边框和圆角设计的现代替代方案,比旧版 Frame 更灵活、语义更清晰,也更适合新项目。
Border控件基础用法
Border 是一个容器控件,可包裹任意子内容(如 Label、Button、StackLayout 等),并提供原生级的边框与圆角支持。
- 用
包裹内容,设置Stroke(边框颜色)、StrokeThickness(边框粗细)、CornerRadius(圆角)即可生效 - 支持独立控制每条边的圆角:用
CornerRadius="8,4,0,12"表示左上、右上、右下、左下 - 背景色通过
Background设置(不是 BackgroundColor),推荐用Brush类型(如SolidColorBrush或渐变)
示例:
Border vs Frame:什么时候该换?
Frame 在 MAUI 中仍被保留,主要用于兼容 Xamarin.Forms 迁移项目;但新开发建议直接用 Border。
- Border 支持更精细的圆角控制(四角可不同)、多种形状(如
RoundRectangle、Ellipse)、自定义 StrokeDashArray(虚线边框) - Frame 的
CornerRadius是统一值,且在某些平台(尤其是 iOS)对小数值渲染不稳定 - Border 不自带内边距(Padding),需手动加;Frame 默认有 Padding,容易误判布局尺寸
圆角实现的其他可靠方式
除了 Border,还有几种常用且稳定的圆角方案,按推荐优先级排列:
- Button.CornerRadius:最简单,但注意 iOS 对小于 4 的值可能失效,建议 ≥6;Android 和 Windows 支持良好
- ShapeView(第三方或自建):适合不规则形状(如椭圆、三角形按钮),需配合 Geometry 使用
-
OnPlatform 分别设置:当 Button 圆角在 iOS 显示过小、Android 偏大时,可用:
常见问题与绕过技巧
有些场景下直接设 CornerRadius 会失效,别急着换方案,先检查这几项:
- Button 被放在 Grid 或 StackLayout 中,且父容器设置了
ClippingGeometry或裁剪行为 —— 尝试给 Border 或外层容器加Clip="null" - BackgroundColor 透明或未设置 → 圆角视觉不可见,务必确认背景有颜色或图片
- iOS 上 Button 文字自动大写干扰布局 → 加
TextTransform="None" - 需要内阴影/外阴影效果 → Border 本身不支持,可嵌套一层 Grid + Shadow 属性(WinUI/macOS 支持,iOS/Android 需自定义 Handler)
基本上就这些。Border 是 MAUI 边框和圆角的主力控件,用熟了比拼各种 Hack 方式省心很多。










