Borda
O .NET Multi-platform App UI (.NET MAUI) Border é um controle de contêiner que desenha uma borda, plano de fundo ou ambos, em torno de outro controle. Um Border só pode conter um objeto filho. Se você quiser colocar uma borda ao redor de vários objetos, envolva-os em um objeto de contêiner, como um layout. Para obter mais informações sobre layouts, consulte Layouts.
Border define as propriedades a seguir:
Content
, do tipoIView
, representa o conteúdo a ser exibido na borda. Essa propriedade é a da Border classe e, portanto, não precisa ser definida explicitamente aContentProperty
partir de XAML.Padding
, do tipoThickness
, representa a distância entre a borda e seu elemento filho.StrokeShape
, do tipoIShape
, descreve a forma da borda. Essa propriedade tem um conversor de tipo aplicado a ela que pode converter uma cadeia de caracteres em seu equivalenteIShape
. Seu valor padrão é Rectangle. Portanto, um Border será retangular por padrão.Stroke
, do tipo Brush, indica o pincel usado para pintar a borda.StrokeThickness
, do tipodouble
, indica a largura da borda. O valor padrão dessa propriedade é 1.0.StrokeDashArray
, do tipoDoubleCollection
, que representa uma coleção de valores que indicam o padrão dedouble
traços e lacunas que compõem a borda.StrokeDashOffset
, do tipodouble
, especifica a distância dentro do padrão de traço onde um traço começa. O valor padrão dessa propriedade é 0,0.StrokeLineCap
, do tipoPenLineCap
, descreve a forma no início e no final de sua linha. O valor padrão dessa propriedade éPenLineCap.Flat
.StrokeLineJoin
, do tipo , especifica o tipoPenLineJoin
de junção usado nos vértices da forma de traçado. O valor padrão dessa propriedade éPenLineJoin.Miter
.StrokeMiterLimit
, do tipodouble
, especifica o limite da relação entre o comprimento da esquadria e metade da espessura do traçado. O valor padrão dessa propriedade é 10.0.
Essas propriedades são apoiadas por BindableProperty objetos, o que significa que elas podem ser alvos de associações de dados e estilizadas.
Importante
Ao criar uma borda usando uma forma, como a Rectangle ou Polygon, somente formas fechadas devem ser usadas. Portanto, abra formas como Line não são suportadas.
Para obter mais informações sobre as propriedades que controlam a forma e o traçado da borda, consulte Formas.
Criar uma borda
Para desenhar uma borda, crie um Border objeto e defina suas propriedades para definir sua aparência. Em seguida, defina seu filho para o controle ao qual a borda deve ser adicionada.
O exemplo XAML a seguir mostra como desenhar uma borda ao redor de um Label:
<Border Stroke="#C49B33"
StrokeThickness="4"
StrokeShape="RoundRectangle 40,0,0,40"
Background="#2B0B98"
Padding="16,8"
HorizontalOptions="Center">
<Label Text=".NET MAUI"
TextColor="White"
FontSize="18"
FontAttributes="Bold" />
</Border>
Como alternativa, o valor da propriedade pode ser especificado usando a sintaxe da StrokeShape
marca de propriedade:
<Border Stroke="#C49B33"
StrokeThickness="4"
Background="#2B0B98"
Padding="16,8"
HorizontalOptions="Center">
<Border.StrokeShape>
<RoundRectangle CornerRadius="40,0,0,40" />
</Border.StrokeShape>
<Label Text=".NET MAUI"
TextColor="White"
FontSize="18"
FontAttributes="Bold" />
</Border>
Este é o código C# equivalente:
using Microsoft.Maui.Controls.Shapes;
using GradientStop = Microsoft.Maui.Controls.GradientStop;
...
Border border = new Border
{
Stroke = Color.FromArgb("#C49B33"),
Background = Color.FromArgb("#2B0B98"),
StrokeThickness = 4,
Padding = new Thickness(16, 8),
HorizontalOptions = LayoutOptions.Center,
StrokeShape = new RoundRectangle
{
CornerRadius = new CornerRadius(40, 0, 0, 40)
},
Content = new Label
{
Text = ".NET MAUI",
TextColor = Colors.White,
FontSize = 18,
FontAttributes = FontAttributes.Bold
}
};
Neste exemplo, uma borda com cantos arredondados superior esquerdo e inferior direito é desenhada ao redor de um Labelarquivo . A forma de borda é definida como um objeto, cuja CornerRadius
propriedade é definida como um RoundRectangleThickness
valor que permite o controle independente de cada canto do retângulo:
Como a Stroke
propriedade é do tipo Brush, as bordas também podem ser desenhadas usando gradientes:
<Border StrokeThickness="4"
StrokeShape="RoundRectangle 40,0,0,40"
Background="#2B0B98"
Padding="16,8"
HorizontalOptions="Center">
<Border.Stroke>
<LinearGradientBrush EndPoint="0,1">
<GradientStop Color="Orange"
Offset="0.1" />
<GradientStop Color="Brown"
Offset="1.0" />
</LinearGradientBrush>
</Border.Stroke>
<Label Text=".NET MAUI"
TextColor="White"
FontSize="18"
FontAttributes="Bold" />
</Border>
Este é o código C# equivalente:
using Microsoft.Maui.Controls.Shapes;
using GradientStop = Microsoft.Maui.Controls.GradientStop;
...
Border gradientBorder = new Border
{
StrokeThickness = 4,
Background = Color.FromArgb("#2B0B98"),
Padding = new Thickness(16, 8),
HorizontalOptions = LayoutOptions.Center,
StrokeShape = new RoundRectangle
{
CornerRadius = new CornerRadius(40, 0, 0, 40)
},
Stroke = new LinearGradientBrush
{
EndPoint = new Point(0, 1),
GradientStops = new GradientStopCollection
{
new GradientStop { Color = Colors.Orange, Offset = 0.1f },
new GradientStop { Color = Colors.Brown, Offset = 1.0f }
},
},
Content = new Label
{
Text = ".NET MAUI",
TextColor = Colors.White,
FontSize = 18,
FontAttributes = FontAttributes.Bold
}
};
Neste exemplo, uma borda que usa um gradiente linear é desenhada em torno de um Label:
Definir a forma da borda com uma cadeia de caracteres
Em XAML, o valor da propriedade pode ser definido usando a StrokeShape
sintaxe property-tag ou como um string
arquivo . Os valores válidos string
para a StrokeShape
propriedade são:
Ellipse
Line
, seguido por um ou dois pares de coordenadas x e y. Por exemplo, desenha uma linha de (10,20) a (0,0) eLine 10 20, 100 120
desenha uma linha de (10,20) a (100,120Line 10 20
).Path
, seguido por dados de sintaxe de marcação de caminho. Por exemplo,Path M 10,100 L 100,100 100,50Z
desenhará uma borda triangular. Para obter mais informações sobre a sintaxe de marcação de caminho, consulte Sintaxe de marcação de caminho.Polygon
, seguido por uma coleção de pares de coordenadas x e y. Por exemplo,Polygon 40 10, 70 80, 10 50
.Polyline
, seguido por uma coleção de pares de coordenadas x e y. Por exemplo,Polyline 0,0 10,30 15,0 18,60 23,30 35,30 40,0 43,60 48,30 100,30
.Rectangle
RoundRectangle
, opcionalmente seguido por um raio de canto. Por exemplo,RoundRectangle 40
ouRoundRectangle 40,0,0,40
.
Importante
Embora Line
seja um valor válido string
para a StrokeShape
propriedade, seu uso não é suportado.
String
-baseados em pares de coordenadas x e y podem ser delimitados por uma única vírgula e/ou um ou mais espaços. Por exemplo, "40,10 70,80" e "40 10, 70 80" são ambos válidos. Os pares de coordenadas serão convertidos em Point
objetos que definem X
e Y
propriedades, do tipo double
.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários