Border
Rozhraní .NET Multi-Platform App UI (.NET MAUI) Border je ovládací prvek kontejneru, který kolem jiného ovládacího prvku nakreslí ohraničení, pozadí nebo obojí. A Border může obsahovat pouze jeden podřízený objekt. Pokud chcete umístit ohraničení kolem více objektů, zabalte je do objektu kontejneru, jako je například rozložení. Další informace o rozloženích najdete v tématu Rozložení.
Border definuje následující vlastnosti:
Content
, typuIView
, představuje obsah, který se má zobrazit v ohraničení. Tato vlastnost jeContentProperty
třída Border , a proto není nutné explicitně nastavit z XAML.Padding
, typuThickness
představuje vzdálenost mezi ohraničením a jeho podřízeným prvkem.StrokeShape
, typuIShape
, popisuje tvar ohraničení. Tato vlastnost má použitý převaděč typů, který může převést řetězec na jeho ekvivalentIShape
. Výchozí hodnota je Rectangle. Border Proto bude ve výchozím nastavení obdélníkový.Stroke
, typu Brushoznačuje štětec použitý k malování ohraničení.StrokeThickness
, typudouble
označuje šířku ohraničení. Výchozí hodnota této vlastnosti je 1,0.StrokeDashArray
, typuDoubleCollection
, který představuje kolekcidouble
hodnot, které označují vzor pomlček a mezer, které tvoří ohraničení.StrokeDashOffset
, typudouble
, určuje vzdálenost v pomlčkovém vzoru, kde začíná pomlčka. Výchozí hodnota této vlastnosti je 0,0.StrokeLineCap
, typuPenLineCap
, popisuje obrazec na začátku a konci jeho čáry. Výchozí hodnota této vlastnosti jePenLineCap.Flat
.StrokeLineJoin
, typuPenLineJoin
, určuje typ spojení, které se používá na vrcholech tvaru tahu. Výchozí hodnota této vlastnosti jePenLineJoin.Miter
.StrokeMiterLimit
, typudouble
, určuje omezení poměru délky miteru na polovinu tloušťky tahu. Výchozí hodnota této vlastnosti je 10,0.
Tyto vlastnosti jsou podporovány BindableProperty objekty, což znamená, že mohou být cíle datových vazeb a stylovány.
Důležité
Při vytváření ohraničení pomocí obrazce, například obrazce Rectangle nebo Polygon, by se měly použít pouze zavřené obrazce. Otevřené obrazce, jako Line jsou například nepodporované.
Vytvoření ohraničení
Pokud chcete nakreslit ohraničení, vytvořte Border objekt a nastavte jeho vlastnosti tak, aby definovaly jeho vzhled. Potom nastavte jeho podřízený ovládací prvek, do kterého má být ohraničení přidáno.
Následující příklad XAML ukazuje, jak nakreslit ohraničení kolem 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>
StrokeShape
Případně můžete hodnotu vlastnosti zadat pomocí syntaxe značky vlastnosti:
<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>
Ekvivalentní kód jazyka C# je:
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
}
};
V tomto příkladu je ohraničení se zaobleným levým horním a pravým dolním rohem nakresleno Labelkolem . Obrazec ohraničení je definován jako RoundRectangle objekt, jehož CornerRadius
vlastnost je nastavena na Thickness
hodnotu, která umožňuje nezávislé řízení každého rohu obdélníku:
Vzhledem k tomu, že Stroke
vlastnost je typu Brush, ohraničení lze také nakreslit pomocí přechodů:
<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>
Ekvivalentní kód jazyka C# je:
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
}
};
V tomto příkladu je ohraničení, které používá lineární přechod kolem Label:
Definování obrazce ohraničení pomocí řetězce
V jazyce XAML lze hodnotu StrokeShape
vlastnosti definovat pomocí syntaxe značek vlastností nebo jako string
. Platné string
hodnoty pro StrokeShape
vlastnost jsou:
Ellipse
Line
následované jedním nebo dvěma dvojicemi souřadnic x a y. NapříkladLine 10 20
nakreslí čáru z (10 20) na (0,0) aLine 10 20, 100 120
nakreslí čáru z (10 20) do (100 120).Path
následovaná daty syntaxe značek cesty. NapříkladPath M 10,100 L 100,100 100,50Z
nakreslí trojúhelníkové ohraničení. Další informace o syntaxi značek cesty naleznete v tématu Syntaxe značek cesty.Polygon
následované kolekcí párů souřadnic x a y. NapříkladPolygon 40 10, 70 80, 10 50
.Polyline
následované dvojicemi souřadnic x- a y kolekce. NapříkladPolyline 0,0 10,30 15,0 18,60 23,30 35,30 40,0 43,60 48,30 100,30
.Rectangle
RoundRectangle
volitelně následovaný rohovým poloměrem. NapříkladRoundRectangle 40
neboRoundRectangle 40,0,0,40
.
Důležité
I když Line
je platná string
hodnota vlastnosti StrokeShape
, její použití není podporováno.
String
-based x- and y-coordinate pairs can be delimited by a single čárka and/or one or more spaces. Například 40 10 70 80 a 40 10, 70 80 jsou obě platné. Dvojice souřadnic budou převedeny na Point
objekty, které definují X
a Y
vlastnosti typu double
.