Android에서 VisualElement 권한 상승VisualElement Elevation on Android

샘플 다운로드 샘플 다운로드Download Sample Download the sample

이 Android 플랫폼별는 API 21 이상을 대상으로 하는 응용 프로그램에서 시각적 요소의 권한 상승 또는 Z 순서를 제어 하는 데 사용 됩니다.This Android platform-specific is used to control the elevation, or Z-order, of visual elements on applications that target API 21 or greater. 시각적 요소 상승 Z 값이 높을수록 occluding Z 값이 낮은 시각적 요소를 사용 하 여 시각적 요소를 사용 하 여 해당 그리기 순서를 결정 합니다.The elevation of a visual element determines its drawing order, with visual elements with higher Z values occluding visual elements with lower Z values. 설정 하 여 XAML에서 사용 되는 VisualElement.Elevation 연결 된 속성을 boolean 값:It's consumed in XAML by setting the VisualElement.Elevation attached property to a boolean value:

<ContentPage ...
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
             Title="Elevation">
    <StackLayout>
        <Grid>
            <Button Text="Button Beneath BoxView" />
            <BoxView Color="Red" Opacity="0.2" HeightRequest="50" />
        </Grid>        
        <Grid Margin="0,20,0,0">
            <Button Text="Button Above BoxView - Click Me" android:VisualElement.Elevation="10"/>
            <BoxView Color="Red" Opacity="0.2" HeightRequest="50" />
        </Grid>
    </StackLayout>
</ContentPage>

또는 fluent API를 사용 하 여 C#에서 사용할 수 있습니다.Alternatively, it can be consumed from C# using the fluent API:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...

public class AndroidElevationPageCS : ContentPage
{
    public AndroidElevationPageCS()
    {
        ...
        var aboveButton = new Button { Text = "Button Above BoxView - Click Me" };
        aboveButton.On<Android>().SetElevation(10);

        Content = new StackLayout
        {
            Children =
            {
                new Grid
                {
                    Children =
                    {
                        new Button { Text = "Button Beneath BoxView" },
                        new BoxView { Color = Color.Red, Opacity = 0.2, HeightRequest = 50 }
                    }
                },
                new Grid
                {
                    Margin = new Thickness(0,20,0,0),
                    Children =
                    {
                        aboveButton,
                        new BoxView { Color = Color.Red, Opacity = 0.2, HeightRequest = 50 }
                    }
                }
            }
        };
    }
}

Button.On<Android> 메서드가 플랫폼별 Android에만 실행 되도록 지정 합니다.The Button.On<Android> method specifies that this platform-specific will only run on Android. VisualElement.SetElevation 메서드를 합니다 Xamarin.Forms.PlatformConfiguration.AndroidSpecific 네임 스페이스에 null을 허용 하는 상승 시각적 요소를 설정 하는 float합니다.The VisualElement.SetElevation method, in the Xamarin.Forms.PlatformConfiguration.AndroidSpecific namespace, is used to set the elevation of the visual element to a nullable float. 또한는 VisualElement.GetElevation 메서드를 사용 하 여 시각적 요소 높이 값을 검색할 수 있습니다.In addition, the VisualElement.GetElevation method can be used to retrieve the elevation value of a visual element.

결과 더 높은 Z 값이 포함 된 시각적 요소 채워집니다 Z 값이 낮은 시각적 요소 수 있도록 시각적 요소의 높이 제어할 수 있습니다.The result is that the elevation of visual elements can be controlled so that visual elements with higher Z values occlude visual elements with lower Z values. 따라서이 예제의 두 번째 Button 위에 렌더링 되는 BoxView 권한 상승 값이 높을수록 있기 때문에:Therefore, in this example the second Button is rendered above the BoxView because it has a higher elevation value: