Sdílet prostřednictvím


Stín

Třída .NET Multi-Platform App UI (.NET MAUI) Shadow maluje stín kolem rozložení nebo zobrazení. Třída VisualElementShadow bindable vlastnost typu Shadow, která umožňuje přidat stín do libovolného rozložení nebo zobrazení.

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

  • Radius, typu float, definuje poloměr rozostření použitého k vygenerování stínu. Výchozí hodnota této vlastnosti je 10.
  • Opacity, typu floatoznačuje neprůhlednost stínu. Výchozí hodnota této vlastnosti je 1.
  • Brush, typu Brush, představuje štětec použitý k obarvení stínu.
  • Offset, typu Point, určuje posun pro stín, který představuje pozici zdroje světla, který vytváří stín.

Tyto vlastnosti jsou založeny na objektech BindableProperty, což znamená, že mohou být cíli datových vazeb a stylové úpravy.

Důležitý

Vlastnost Brush aktuálně podporuje pouze SolidColorBrush.

Vytvoření stínu

Chcete-li přidat stín do ovládacího prvku, použijte syntaxi elementu vlastnosti k nastavení vlastnosti Shadow ovládacího prvku na Shadow objekt, jehož vlastnosti definují jeho vzhled.

Pokud chcete do ovládacího prvku přidat stín, nastavte vlastnost Shadow ovládacího prvku na formátovaný řetězec, který definuje stín. Existují tři podporované formáty řetězců:

  • color, offset X, offset Y:

    <Image Source="dotnet_bot.png"
           WidthRequest="250"
           HeightRequest="310"
           Shadow="#000000 4 4" />
    
  • offset X, offset Y, radius, color:

    <Image Source="dotnet_bot.png"
           WidthRequest="250"
           HeightRequest="310"
           Shadow="5 8 8 rgb(6, 201, 198)" />    
    
  • offset X, offset Y, radius, color, opacity:

    <Image Source="dotnet_bot.png"
           WidthRequest="250"
           HeightRequest="310"
           Shadow="4 4 16 AliceBlue 0.5" />
    

Barvy lze zadat pomocí následujících formátů:

Formát Příklad Komentáře
HEX #rgb, #argb, #rrggbb, #aarrggbb
RGB rgb(255,0,0), rgb(100%,0%,0%) Platné hodnoty jsou v rozsahu 0–255 nebo 0%-100%.
RGBA rgba(255, 0, 0, 0.8), rgba(100%, 0%, 0%, 0.8) Platné hodnoty neprůhlednosti jsou 0.0-1.0.
HSL hsl(120, 100%, 50%) Platné hodnoty pro h jsou 0–360 a pro s a l jsou 0%-100%.
HSLA hsla(120, 100%, 50%, .8) Platné hodnoty neprůhlednosti jsou 0.0-1.0.
HSV hsv(120, 100%, 50%) Platné hodnoty pro h jsou 0–360 a pro s a v jsou 0%-100%.
HSVA hsva(120, 100%, 50%, .8) Platné hodnoty neprůhlednosti jsou 0.0-1.0.
Předdefinovaná barva fuchsia, AquaMarine, limegreen Barevné řetězce nerozlišují velká a malá písmena.

Alternativně lze vlastnost Shadow ovládacího prvku nastavit na objekt Shadow pomocí syntaxe prvku property, jehož vlastnosti definují jeho vzhled.

Následující příklad XAML ukazuje, jak přidat stín do Image pomocí syntaxe elementu property:

<Image Source="dotnet_bot.png"
       WidthRequest="250"
       HeightRequest="310">
    <Image.Shadow>
        <Shadow Brush="Black"
                Offset="20,20"
                Radius="40"
                Opacity="0.8" />
    </Image.Shadow>
</Image>

V tomto příkladu se kolem obrysu obrázku maluje černý stín s jeho posunem, který určuje, že se zobrazí v pravém a dolním rohu obrázku:

Screenshot obrázku, na který byl aplikován stín.

Stíny lze také přidat do oříznutých objektů, jak je znázorněno v následujícím příkladu:

<Image Source="https://aka.ms/campus.jpg"
       Aspect="AspectFill"
       HeightRequest="220"
       WidthRequest="220"
       HorizontalOptions="Center">
    <Image.Clip>
        <EllipseGeometry Center="220,250"
                         RadiusX="220"
                         RadiusY="220" />
    </Image.Clip>
    <Image.Shadow>
        <Shadow Brush="Black"
                Offset="10,10"
                Opacity="0.8" />
    </Image.Shadow>
</Image>

V tomto příkladu je kolem obrysu EllipseGeometry, který ořezává obrázek, namalován černý stín:

Snímek obrazovky s oříznutým obrázkem s použitým stínem

Další informace o oříznutí prvku naleznete v tématu Oříznutí s geometrií.