SystemBackdrop 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
- 상속
- 파생
- 특성
예제
이 예제에서는 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;
}
}
설명
이 클래스를 사용하여 사용자 지정 시스템 배경을 만듭니다. 이 클래스를 직접 만들지 않습니다(보호된 생성자에 유의). 대신 사용자 지정 지원을 추가하기 위해 서브클래스합니다. 기본 제공 파생 클래스인 MicaBackdrop 및 DesktopAcrylicBackdrop 중 하나를 사용할 수도 있습니다.
일반적으로 사용자 지정 재질은 OnTargetConnected를 재정의하여 배경 영역을 채우는 데 사용되는 CompositionBrush를 관리하는 백업 ISystemBackdropController를 만들고 구성합니다. 브러시의 궁극적인 픽셀 렌더링은 다음의 영향을 받습니다.
- SystemBackdropConfiguration을 통해 설정된 환경/정책
-
ISystemBackdropControllerWithTargets.State() 및 MicaController.Kind
Base
BaseAlt
/(/Active
/Fallback
HighContrast
)와 같은 재질별 속성과 같은 일반 속성을 통해 노출되는 재질의 모양 매개 변수입니다.
기본 제공 컨트롤러(MicaController 및 DesktopAcrylicController)는 모양을 FallbackColor
사용자 지정하기 위해 , , LuminosityOpacity
TintColor
및 TintOpacity
매개 변수를 지원합니다. 기본 제공 시스템 배경(MicaBackdrop 및 DesktopAcrylicBackdrop)은 또는 재질 사용자 지정 속성(TintOpacity
등)을 노출 FallbackColor
하지 않습니다. 대신 기본 및 DesktopAcrylicController
의 기본 밝게/어둡게 구성을 MicaController
사용합니다. 이러한 속성을 사용자 지정하려면 에서 SystemBackdrop
파생되고 원하는 속성을 노출하는 사용자 지정 재질 클래스를 만듭니다.
생성자
SystemBackdrop() |
|
속성
Dispatcher |
항상 Windows 앱 SDK 앱에서 를 반환 |
DispatcherQueue |
|