Udostępnij za pośrednictwem


Cień

Klasa Shadow wieloplatformowego interfejsu użytkownika aplikacji .NET (.NET MAUI) rysuje cień wokół układu lub widoku. Klasa VisualElement ma właściwość powiązaną Shadow typu Shadow, która umożliwia dodanie cienia do dowolnego układu lub widoku.

Klasa Shadow definiuje następujące właściwości:

  • Radiustypu floatdefiniuje promień rozmycia używanego do generowania cienia. Wartość domyślna tej właściwości to 10.
  • Opacity, typu float, wskazuje nieprzezroczystość cienia. Wartość domyślna tej właściwości to 1.
  • Brush, typu Brush, reprezentuje szczotkę używaną do kolorowania cienia.
  • Offsettypu Pointokreśla przesunięcie cienia, które reprezentuje położenie źródła światła, które tworzy cień.

Te właściwości są wspierane przez obiekty BindableProperty, co oznacza, że mogą być obiektami docelowymi powiązań danych i stylizowanymi.

Ważny

Obecnie właściwość Brush obsługuje tylko SolidColorBrush.

Tworzenie cienia

Aby dodać cień do kontrolki, użyj składni elementu właściwości, aby ustawić właściwość Shadow kontrolki na obiekt Shadow, którego właściwości definiują jego wygląd.

Aby dodać cień do kontrolki, ustaw właściwość Shadow kontrolki na sformatowany ciąg, który definiuje cień. Istnieją trzy obsługiwane formaty ciągów:

  • 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" />
    

Kolory można określić przy użyciu następujących formatów:

Format Przykład Komentarze
UROK #rgb, #argb, #rrggbb, #aarrggbb
RGB rgb(255,0,0), rgb(100%,0%,0%) Prawidłowe wartości znajdują się w zakresie od 0 do 255 lub 0%-100%.
RGBA rgba(255, 0, 0, 0.8), rgba(100%, 0%, 0%, 0.8) Prawidłowe wartości nieprzezroczystości to 0.0–1.0.
HSL hsl(120, 100%, 50%) Prawidłowe wartości dla h to 0–360, a dla s i l to 0%-100%.
HSLA hsla(120, 100%, 50%, .8) Prawidłowe wartości nieprzezroczystości to 0.0–1.0.
HSV hsv(120, 100%, 50%) Prawidłowe wartości dla h to 0–360, a dla s i v to 0%-100%.
HSVA hsva(120, 100%, 50%, .8) Prawidłowe wartości nieprzezroczystości to 0.0–1.0.
Wstępnie zdefiniowany kolor fuchsia, AquaMarine, limegreen Ciągi kolorów są niewrażliwe na wielkość liter.

Alternatywnie właściwość Shadow kontrolki można ustawić na obiekt Shadow, używając składni elementu właściwości, którego właściwości definiują jego wygląd.

W poniższym przykładzie XAML pokazano, jak dodać cień do Image przy użyciu składni elementu właściwości:

<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>

W tym przykładzie cień jest malowany wokół konturu obrazu, a jego przesunięcie wskazuje, że pojawia się po prawej i dolnej części obrazu.

Zrzut ekranu przedstawiający obraz z zastosowanym cieniem.

Cienie można również dodać do przyciętych obiektów, jak pokazano w poniższym przykładzie:

<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>

W tym przykładzie cień jest malowany wokół konturu EllipseGeometry, który przycina obraz:

Zrzut ekranu przedstawiający przycięty obraz z zastosowanym cieniem.

Aby uzyskać więcej informacji na temat wycinania elementu, zobacz "Clip with a Geometry".