ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

XAML Border 控件完全教程

XAML Border 控件完全教程 一、Border 是什么在 WPF、.NET MAUI、Xamarin.Forms、UWP、WinUI 等 XAML 技术栈中Border是一个装饰性布局容器。它的核心职责只有一个给单个子元素添加边框、背景、圆角和内边距等视觉装饰。二、最基础的用法Border BackgroundLightBlue BorderBrushBlack BorderThickness2 CornerRadius8 Padding12 Label TextHello Border / /Border这段代码的效果是一个浅蓝色背景、黑色 2 像素边框、8 像素圆角、内部留白 12 像素的区域里面显示一行文字。重要规则Border 只能包含一个子元素。如果需要放多个控件在内部再套一层StackLayout、Grid或VerticalStackLayout等布局容器。三、核心属性详解设置 Border 的背景填充支持纯色和渐变画刷。!-- 纯色背景 -- Border Background#F5F5F5 / !-- 线性渐变背景 -- Border Border.Background LinearGradientBrush StartPoint0,0 EndPoint1,1 GradientStop Color#667eea Offset0 / GradientStop Color#764ba2 Offset1 / /LinearGradientBrush /Border.Background /Border设为Transparent时背景透明只保留边框。3.2 BorderBrush —— 边框颜色Border BorderBrushRed BorderThickness2 /同样支持画刷可以做渐变色边框。3.3 BorderThickness —— 边框粗细!-- 四边统一 -- Border BorderThickness2 / !-- 上下、左右分别设置 -- Border BorderThickness2,4 / !-- 左、上、右、下分别设置 -- Border BorderThickness1,2,1,2 / !-- 只显示左边框常见于列表高亮、引用块 -- Border BorderThickness4,0,0,0 BorderBrushBlue /3.4 CornerRadius —— 圆角!-- 四角统一 -- Border CornerRadius12 / !-- 左上、右上、右下、左下分别设置 -- Border CornerRadius12,12,0,0 /利用不对称圆角可以做出 标签 气泡 对话框尖角 等特殊造型。3.5 Padding —— 内边距控制 Border 内部内容与边框之间的距离。Border Padding16 / !-- 四边 16 -- Border Padding16,8 / !-- 左右 16上下 8 -- Border Padding10,8,10,8 / !-- 左、上、右、下 --3.6 Margin —— 外边距控制 Border 与其他元素之间的距离语法和 Padding 一致。四、什么时候该用 Border场景 1卡片式布局移动端 App 中最常见的用法把一条信息包装成一张卡片。Border BackgroundWhite BorderBrush#E0E0E0 BorderThickness1 CornerRadius12 Padding16 Margin16,8 VerticalStackLayout Spacing8 Label Text产品名称 FontSize18 FontAttributesBold / Label Text这是产品的描述信息 TextColor#666666 / Label Text¥ 99.00 TextColorRed FontSize16 / /VerticalStackLayout /Border场景 2自定义输入框外观给 Entry 或 Editor 套一层 Border实现圆角输入框。Border BorderBrush#CCCCCC BorderThickness1 CornerRadius8 Padding12,8 Entry Placeholder请输入用户名 BackgroundColorTransparent / /Border场景 3区域分组与视觉分隔把一组相关控件框起来与页面其他部分形成层次区分。Border Background#FAFAFA CornerRadius8 Padding16 Margin0,12 VerticalStackLayout Label Text基本信息 FontAttributesBold FontSize16 / !-- 多个表单项 -- /VerticalStackLayout /Border场景 4圆形头像 / 圆形按钮利用CornerRadius设为宽高的一半实现正圆。Border WidthRequest80 HeightRequest80 CornerRadius40 BackgroundLightGray Image Sourceavatar.png AspectAspectFill / /Border场景 5引用块 / 高亮提示只保留左侧粗边框做引用或提示样式。Border Background#FFF8E1 BorderBrush#FFB300 BorderThickness4,0,0,0 Padding12 Margin0,8 Label Text提示这是一条重要信息请仔细阅读。 TextColor#5D4037 / /Border五、Border 的关键特性5.1 单一子元素Border 的Content属性只接受一个View。这是它和StackLayout、Grid等布局容器最本质的区别 ——Border 不负责排列只负责装饰。5.2 装饰而非布局Border 本身不参与子元素的排列逻辑子元素怎么摆放由内部的布局容器决定。Border 只在外围 包装 一层视觉效果。5.3 圆角裁剪设置CornerRadius后背景和边框会按圆角绘制。子元素内容是否被裁剪各平台行为不同见第六节。5.4 完全可绑定所有属性都支持数据绑定非常适合做主题切换Border Background{AppThemeBinding LightWhite, Dark#1E1E1E} BorderBrush{AppThemeBinding Light#E0E0E0, Dark#333333} /5.5 透明叠加BackgroundTransparent时 Border 不填充但仍可响应点击、显示边框常用于做 幽灵按钮。六、WPF 与 .NET MAUI 的差异表格特性WPF.NET MAUI圆角是否裁剪子元素默认不裁剪需设ClipToBoundsTrue默认裁剪边框绘制位置边框在控件外侧会增加整体尺寸边框在控件内侧绘制阴影使用Effect或已废弃的BitmapEffect内置Shadow属性CornerRadius类型CornerRadius结构体CornerRadius结构体性能成熟稳定跨平台渲染各平台略有差异踩坑提醒在 WPF 中如果 Border 内部放了图片设了CornerRadius后图片的直角可能会 溢出来必须加上ClipToBoundsTrue才能正确裁剪。七、进阶技巧7.1 给 Border 添加阴影MAUIBorder BackgroundWhite CornerRadius12 Padding16 Border.Shadow Shadow Brush#40000000 Offset0,4 Radius12 Opacity0.3 / /Border.Shadow Label Text带阴影的卡片 / /Border7.2 边框动画MAUI TriggersBorder x:NameMyBorder BorderBrushGray BorderThickness1 Border.Triggers Trigger TargetTypeBorder PropertyIsFocused ValueTrue Setter PropertyBorderBrush ValueBlue / Setter PropertyBorderThickness Value2 / /Trigger /Border.Triggers /Border7.3 用 Border 做分隔线!-- 水平分隔线 -- Border HeightRequest1 Background#EEEEEE Margin0,8 / !-- 垂直分隔线 -- Border WidthRequest1 Background#EEEEEE Margin8,0 /虽然有BoxView可以做分隔线但 Border 更灵活支持圆角端点。八、最佳实践优先用 Border 做装饰不要用它做布局—— 多元素排列交给Grid和StackLayout固定不变的颜色用静态资源需要换肤的用 DynamicResource圆角值不要超过宽高的一半否则在某些平台会出现渲染异常列表中大量使用 Border 时注意性能避免过深的嵌套层级WPF 中记得ClipToBounds尤其是内部有图片时统一设计规范把常用的卡片样式提取为Style避免到处复制粘贴!-- 提取为全局样式 -- Style TargetTypeBorder x:KeyCardBorder Setter PropertyBackground ValueWhite / Setter PropertyCornerRadius Value12 / Setter PropertyPadding Value16 / Setter PropertyMargin Value16,8 / Setter PropertyBorderBrush Value#E0E0E0 / Setter PropertyBorderThickness Value1 / /Style !-- 使用时 -- Border Style{StaticResource CardBorder} Label Text复用样式的卡片 / /Border九、总结Border是 XAML 中最简单也最常用的控件之一。记住三句话它是装饰器不是布局器—— 只包一个子元素四大核心属性Background、BorderBrush、BorderThickness、CornerRadius凡是需要 框起来 的内容先想到 Border掌握了 Border你就能在 XAML 中轻松实现卡片、圆角输入框、头像、引用块、分隔线等绝大多数基础视觉效果。
返回列表