Xamarin.Forms Rámeček

Stáhnout ukázku Stažení ukázky

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ův iOSu a Androidu

Třída Frame definuje následující vlastnosti:

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 :

Snímek obrazovky s kartou vytvořenou s rámečkem

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 :

Snímek obrazovky 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í.