Xamarin.Forms Rámeček
Třída je rozložení, které slouží k zabalení zobrazení s ohraničením, které lze nakonfigurovat pomocí Xamarin.FormsFrame barev, stínu a dalších možností. Rámce se běžně používají k vytváření ohraničení kolem ovládacích prvků, ale lze je použít k vytvoření složitějšího uživatelského rozhraní. Další informace najdete v tématu Rozšířené využití snímků.
Následující snímek obrazovky ukazuje Frame ovládací prvky v iOSu a Androidu:
a Androidu –Příklady snímků
a Androidu
Třída Frame definuje následující vlastnosti:
- Xamarin_Forms _Frame_BorderColor" data-linktype="absolute-path">je hodnota, která určuje
BorderColorColorbarvuFrameohraničení. - Xamarin_Forms _Frame_CornerRadius" data-linktype="absolutní_cesta">je hodnota, která určuje
CornerRadiusfloatzaoblený poloměr rohu. - Xamarin_Forms _Frame_HasShadow" data-linktype="absolute-path">je hodnota, která určuje, jestli má rámec
HasShadowboolstín.
Tyto vlastnosti jsou zálohovány objekty, což znamená, že objekt BindableProperty může být cílem Frame datových vazeb.
Poznámka
Chování HasShadow vlastnosti závisí na platformě. Výchozí hodnota je na true všech platformách. V případě stínů UPW se však nevykreslují. Stíny se vykreslují v Androidu i iOSu, ale stíny v iOSu jsou tmavší a zabírají více místa.
Vytvoření rámce
Instanci Frame lze vytvořit v jazyce XAML. Výchozí objekt Frame má bílé pozadí, stín a žádné ohraničení. Objekt Frame obvykle zabalí jiný ovládací prvek. Následující příklad ukazuje výchozí Frame zabalení Label objektu:
<Frame>
<Label Text="Example" />
</Frame>
Objekt Frame lze také vytvořit v kódu:
Frame defaultFrame = new Frame
{
Content = new Label { Text = "Example" }
};
Frame Objekty je možné přizpůsobit pomocí zaoblených rohů, zabarvení ohraničení a stínů nastavením vlastností v jazyce XAML. Následující příklad ukazuje přizpůsobený Frame objekt:
<Frame BorderColor="Orange"
CornerRadius="10"
HasShadow="True">
<Label Text="Example" />
</Frame>
Tyto vlastnosti instance lze také nastavit v kódu:
Frame frame = new Frame
{
BorderColor = Color.Orange,
CornerRadius = 10,
HasShadow = true,
Content = new Label { Text = "Example" }
};
Rozšířené využití snímků
Třída Frame dědí z ContentView , což znamená, že může obsahovat libovolný typ View objektu včetně Layout objektů. Tato schopnost umožňuje použití Frame k vytváření složitých objektů uživatelského rozhraní, jako jsou karty.
Vytvoření karty s rámečkem
Kombinace objektu s objektem, jako je například objekt, umožňuje FrameLayout vytvoření StackLayout složitějšího uživatelského rozhraní. Následující snímek obrazovky ukazuje ukázkovou kartu vytvořenou pomocí Frame objektu :
Následující kód XAML ukazuje, jak vytvořit kartu s Frame třídou :
<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>
Kartu je také možné vytvořit v kódu:
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!"
}
}
}
};
Zaokrouhlení prvků
Vlastnost CornerRadius ovládacího Frame prvku lze použít k vytvoření obrázku s kruhem. Následující snímek obrazovky ukazuje příklad kruhového obrázku vytvořeného pomocí Frame objektu :
s obrázkem s kruhem vytvořeným pomocí rámečku
Následující kód XAML ukazuje, jak v jazyce XAML vytvořit obrázek s kruhem:
<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>
V kódu je také možné vytvořit obrázek s kruhem:
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
}
};
Obrázek outdoors.jpg musí být přidán do každého projektu platformy a způsob, jakým toho dosáhnete, se liší podle platformy. Další informace naleznete v tématu Images in Xamarin.Forms.
Poznámka
Zaoblené rohy se napříč platformami chovají trochu jinak. Objekt by měl být polovinou rozdílu mezi šířkou obrázku a šířkou nadřazeného rámce a měl by být záporný, aby byl obrázek rovnoměrně zasazen ImageMargin do středu Frame objektu. Požadovaná šířka a výška ale nejsou zaručené, takže vlastnosti , a může být potřeba změnit na základě velikosti obrázku a dalších MarginHeightRequest možností WidthRequest rozložení.
Stažení ukázky