Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klasa Xamarin.FormsFrame jest układem służącym do zawijania widoku z obramowaniem, które można skonfigurować za pomocą kolorów, cieni i innych opcji. Ramki są często używane do tworzenia obramowań wokół kontrolek, ale mogą służyć do tworzenia bardziej złożonego interfejsu użytkownika. Aby uzyskać więcej informacji, zobacz Zaawansowane użycie ramki.
Poniższy zrzut ekranu przedstawia Frame kontrolki w systemach iOS i Android:
Klasa Frame definiuje następujące właściwości:
BorderColorjest wartościąColor, która określa kolor obramowaniaFrame.CornerRadiusjest wartościąfloat, która określa zaokrąglony promień rogu.HasShadowjest wartością określającąbool, czy ramka ma cień.
Te właściwości są wspierane przez BindableProperty obiekty, co oznacza, że Frame może być obiektem docelowym powiązań danych.
Uwaga
Zachowanie HasShadow właściwości jest zależne od platformy. Wartość domyślna znajduje się true na wszystkich platformach. Jednak w przypadku cieni upuszczania platformy UWP nie są renderowane. Cienie upuszczania są renderowane zarówno w systemach Android, jak i iOS, ale cienie w systemie iOS są ciemniejsze i zajmują więcej miejsca.
Tworzenie ramki
Wystąpienie elementu można Frame utworzyć w języku XAML. Obiekt domyślny Frame ma białe tło, cień i bez obramowania. Frame Obiekt zazwyczaj opakowuje inną kontrolkę. W poniższym przykładzie przedstawiono domyślne Frame zawijanie Label obiektu:
<Frame>
<Label Text="Example" />
</Frame>
Element Frame można również utworzyć w kodzie:
Frame defaultFrame = new Frame
{
Content = new Label { Text = "Example" }
};
Frame Obiekty można dostosować za pomocą zaokrąglonych narożników, kolorowanych obramowań i cieni upuszczania, ustawiając właściwości w języku XAML. W poniższym przykładzie pokazano Frame dostosowany obiekt:
<Frame BorderColor="Orange"
CornerRadius="10"
HasShadow="True">
<Label Text="Example" />
</Frame>
Te właściwości wystąpienia można również ustawić w kodzie:
Frame frame = new Frame
{
BorderColor = Color.Orange,
CornerRadius = 10,
HasShadow = true,
Content = new Label { Text = "Example" }
};
Zaawansowane użycie ramek
Klasa Frame dziedziczy z ContentViewklasy , co oznacza, że może zawierać dowolny typ View obiektu, w tym Layout obiekty. Ta możliwość umożliwia tworzenie złożonych obiektów interfejsu Frame użytkownika, takich jak karty.
Tworzenie karty z ramką
Połączenie Frame obiektu z obiektem Layout , takim jak StackLayout obiekt, umożliwia utworzenie bardziej złożonego interfejsu użytkownika. Poniższy zrzut ekranu przedstawia przykładową kartę utworzoną Frame przy użyciu obiektu:
Poniższy kod XAML pokazuje, jak utworzyć kartę z klasą Frame :
<Frame BorderColor="Gray"
CornerRadius="5"
Padding="8">
<StackLayout>
<Label Text="Card Example"
FontSize="Medium"
FontAttributes="Bold" />
<BoxView Color="Gray"
HeightRequest="2"
HorizontalOptions="Fill" />
<Label Text="Frames can wrap more complex layouts to create more complex UI components, such as this card!"/>
</StackLayout>
</Frame>
Można również utworzyć kartę w kodzie:
Frame cardFrame = new Frame
{
BorderColor = Color.Gray,
CornerRadius = 5,
Padding = 8,
Content = new StackLayout
{
Children =
{
new Label
{
Text = "Card Example",
FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)),
FontAttributes = FontAttributes.Bold
},
new BoxView
{
Color = Color.Gray,
HeightRequest = 2,
HorizontalOptions = LayoutOptions.Fill
},
new Label
{
Text = "Frames can wrap more complex layouts to create more complex UI components, such as this card!"
}
}
}
};
Elementy okrągłe
Właściwość CornerRadius kontrolki Frame może służyć do tworzenia obrazu okręgu. Poniższy zrzut ekranu przedstawia przykład okrągłego obrazu utworzonego Frame przy użyciu obiektu:
Poniższy kod XAML pokazuje, jak utworzyć obraz okręgowy w języku XAML:
<Frame Margin="10"
BorderColor="Black"
CornerRadius="50"
HeightRequest="60"
WidthRequest="60"
IsClippedToBounds="True"
HorizontalOptions="Center"
VerticalOptions="Center">
<Image Source="outdoors.jpg"
Aspect="AspectFill"
Margin="-20"
HeightRequest="100"
WidthRequest="100" />
</Frame>
Obraz okręgowy można również utworzyć w kodzie:
Frame circleImageFrame = new Frame
{
Margin = 10,
BorderColor = Color.Black,
CornerRadius = 50,
HeightRequest = 60,
WidthRequest = 60,
IsClippedToBounds = true,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
Content = new Image
{
Source = ImageSource.FromFile("outdoors.jpg"),
Aspect = Aspect.AspectFill,
Margin = -20,
HeightRequest = 100,
WidthRequest = 100
}
};
Obraz outdoors.jpg należy dodać do każdego projektu platformy i sposób, w jaki jest to osiągane, różni się w zależności od platformy. Aby uzyskać więcej informacji, zobacz Obrazy w pliku Xamarin.Forms.
Uwaga
Zaokrąglone rogi zachowują się nieco inaczej na różnych platformach. Obiekt Image Margin powinien mieć połowę różnicy między szerokością obrazu a szerokością ramki nadrzędnej i powinien być ujemny, aby wyrównać obraz równomiernie w obrębie Frame obiektu. Jednak żądana szerokość i wysokość nie są gwarantowane, więc MarginHeightRequest może być konieczne zmianę właściwości i WidthRequest na podstawie rozmiaru obrazu i innych opcji układu.


