다음을 통해 공유


SystemBackdrop 클래스

정의

Mica 및 Acrylic과 같은 재질을 렌더링하는 데 사용되는 사용자 지정 시스템 배경에 대한 기본 클래스입니다.

public ref class SystemBackdrop : DependencyObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SystemBackdrop : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class SystemBackdrop : DependencyObject
Public Class SystemBackdrop
Inherits DependencyObject
상속
Object Platform::Object IInspectable DependencyObject SystemBackdrop
파생
특성

예제

이 예제에서는 MicaController를 사용하여 구현된 사용자 지정 시스템 배경 클래스를 보여 줍니다.

기본 OnTargetConnected 메서드를 호출하면 GetDefaultSystemBackdropConfiguration에서 반환된 기본 구성 개체가 초기화되어 이 SystemBackdrop instance 영향을 주는 환경 변경 내용을 반영합니다(로 지정됨connectedTarget, XamlRoot).

이 페이지의 예제는 공유 MicaSystemBackdrop 인스턴스(예Window1.SystemBackdrop = Window2.SystemBackdrop = myMicaSystemBackdrop: )를 지원하지 않지만 이러한 공유는 가능하며 기본 제공 및 DesktopAcrylicBackdrop 재질에서 MicaBackdrop 지원됩니다. 사용자 지정 재질에서 공유를 구현하려면 백업 ISystemBackdropController 스토리지를 벡터화하여 각 사용 컨텍스트에 대해 별도의 instance 유지합니다(예: 에 connectedTarget키가 지정된 맵을 통해). SystemBackdrop 마찬가지로 GetDefaultSystemBackdropConfiguration에서 반환된 연결된 기본 구성 개체를 벡터화하여 가 공유될 때 SystemBackdrop 구성이 각 사용 컨텍스트를 반영하도록 합니다.

<Window
    ... >
    <Window.SystemBackdrop>
        <local:MicaSystemBackdrop/>
    </Window.SystemBackdrop>

    <!-- XAML content -->

</Window>
public class MicaSystemBackdrop : SystemBackdrop
{
    MicaController micaController;

    protected override void OnTargetConnected(ICompositionSupportsSystemBackdrop connectedTarget, XamlRoot xamlRoot)
    {
        // Call the base method to initialize the default configuration object.
        base.OnTargetConnected(connectedTarget, xamlRoot);

        // This example does not support sharing MicaSystemBackdrop instances.
        if (micaController is not null)
        {
            throw new Exception("This controller cannot be shared");
        }

        micaController = new MicaController();
        // Set configuration.
        SystemBackdropConfiguration defaultConfig = GetDefaultSystemBackdropConfiguration(connectedTarget, xamlRoot);
        micaController.SetSystemBackdropConfiguration(defaultConfig);
        // Add target.
        micaController.AddSystemBackdropTarget(connectedTarget);
    }

    protected override void OnTargetDisconnected(ICompositionSupportsSystemBackdrop disconnectedTarget)
    {
        base.OnTargetDisconnected(disconnectedTarget);

        micaController.RemoveSystemBackdropTarget(disconnectedTarget);
        micaController = null;
    }
}

설명

이 클래스를 사용하여 사용자 지정 시스템 배경을 만듭니다. 이 클래스를 직접 만들지 않습니다(보호된 생성자에 유의). 대신 사용자 지정 지원을 추가하기 위해 서브클래스합니다. 기본 제공 파생 클래스인 MicaBackdropDesktopAcrylicBackdrop 중 하나를 사용할 수도 있습니다.

일반적으로 사용자 지정 재질은 OnTargetConnected를 재정의하여 배경 영역을 채우는 데 사용되는 CompositionBrush를 관리하는 백업 ISystemBackdropController를 만들고 구성합니다. 브러시의 궁극적인 픽셀 렌더링은 다음의 영향을 받습니다.

기본 제공 컨트롤러(MicaControllerDesktopAcrylicController)는 모양을 FallbackColor사용자 지정하기 위해 , , LuminosityOpacityTintColorTintOpacity매개 변수를 지원합니다. 기본 제공 시스템 배경(MicaBackdropDesktopAcrylicBackdrop)은 또는 재질 사용자 지정 속성(TintOpacity등)을 노출 FallbackColor 하지 않습니다. 대신 기본 및 DesktopAcrylicController의 기본 밝게/어둡게 구성을 MicaController 사용합니다. 이러한 속성을 사용자 지정하려면 에서 SystemBackdrop 파생되고 원하는 속성을 노출하는 사용자 지정 재질 클래스를 만듭니다.

생성자

SystemBackdrop()

SystemBackdrop 클래스의 새 인스턴스를 초기화합니다.

속성

Dispatcher

항상 Windows 앱 SDK 앱에서 를 반환 null 합니다. 대신 DispatcherQueue 를 사용합니다.

(다음에서 상속됨 DependencyObject)
DispatcherQueue

DispatcherQueue 이 개체가 연결된 을 가져옵니다. 는 DispatcherQueue 코드가 비 UI 스레드에 의해 시작되는 경우에도 UI 스레드에서 에 액세스할 DependencyObject 수 있는 기능을 나타냅니다.

(다음에서 상속됨 DependencyObject)

메서드

ClearValue(DependencyProperty)

종속성 속성의 로컬 값을 지웁니다.

(다음에서 상속됨 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

애니메이션이 활성화되지 않은 경우 적용되는 종속성 속성에 대해 설정된 모든 기본 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
GetDefaultSystemBackdropConfiguration(ICompositionSupportsSystemBackdrop, XamlRoot)

에 전달할 수 있는 기본 SystemBackdropConfiguration 개체를 검색합니다 ISystemBackdropControllerWithTargets.SetSystemBackdropConfiguration.

GetValue(DependencyProperty)

DependencyObject에서 종속성 속성의 현재 유효 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop, XamlRoot)

에서 반환된 개체가 변경될 때 호출되도록 이 메서드를 GetDefaultSystemBackdropConfiguration 재정의합니다. 이는 사용자 지정 SystemBackdropConfiguration를 사용하는 경우에 유용합니다.

OnTargetConnected(ICompositionSupportsSystemBackdrop, XamlRoot)

이 개체가 유효한 컨테이너에 연결되면 호출됩니다. 예를 들어 에 설정된 경우입니다 Window.SystemBackdrop.

OnTargetDisconnected(ICompositionSupportsSystemBackdrop)

이 개체가 컨테이너에서 지워지면 호출됩니다.

ReadLocalValue(DependencyProperty)

로컬 값이 설정된 경우 종속성 속성의 로컬 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

DependencyObject instance 특정 DependencyProperty의 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다.

(다음에서 상속됨 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject에서 종속성 속성의 로컬 값을 설정합니다.

(다음에서 상속됨 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다.

(다음에서 상속됨 DependencyObject)

적용 대상

추가 정보