Compartilhar via


SystemBackdrop Classe

Definição

Classe base para cenários personalizados do sistema usados para renderizar materiais como Mica e Acrílico.

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
Herança
Object Platform::Object IInspectable DependencyObject SystemBackdrop
Derivado
Atributos

Exemplos

Este exemplo mostra uma classe de pano de fundo do sistema personalizada implementada usando MicaController.

Chamar o método base OnTargetConnected inicializa o objeto de configuração padrão retornado por GetDefaultSystemBackdropConfiguration para refletir as alterações de ambiente que afetam essa SystemBackdrop instância (especificada por connectedTarget, XamlRoot).

Embora o exemplo nesta página não dê suporte a instâncias de compartilhamento MicaSystemBackdrop (por exemplo, Window1.SystemBackdrop = Window2.SystemBackdrop = myMicaSystemBackdrop), esse compartilhamento é possível e é compatível com os MicaBackdrop materiais internos e DesktopAcrylicBackdrop . Para implementar o compartilhamento em um material personalizado, vetorize o armazenamento ISystemBackdropController de suporte para manter uma instância separada para cada contexto de uso (por exemplo, por meio de um mapa com chave no connectedTarget). Observe que SystemBackdrop , da mesma forma, vetoriza os objetos de configuração padrão associados retornados por GetDefaultSystemBackdropConfiguration, garantindo que a configuração reflita cada contexto de uso quando SystemBackdrop é compartilhada.

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

Comentários

Use essa classe para criar um cenário de sistema personalizado. Você não cria essa classe diretamente (observe o construtor protegido). Em vez disso, subclasse-a para adicionar seu suporte personalizado. Você também pode usar uma das classes derivadas internas, MicaBackdrop e DesktopAcrylicBackdrop.

Geralmente, o material personalizado substitui OnTargetConnected para criar e configurar um ISystemBackdropController de suporte, que gerenciará o CompositionBrush usado para preencher a região de pano de fundo. A renderização de pixel final do pincel é afetada por:

Os controladores internos (MicaController e DesktopAcrylicController) dão suporte aos seguintes parâmetros para personalizar sua aparência: FallbackColor, LuminosityOpacity, TintColore TintOpacity. Os cenários internos do sistema (MicaBackdrop e DesktopAcrylicBackdrop) não expõem FallbackColor nem as propriedades de personalização de material (TintOpacityetc. Em vez disso, eles dependem das configurações padrão de Claro/Escuro do subjacente MicaController e DesktopAcrylicControllerdo . Para personalizar essas propriedades, crie uma classe de material personalizada que deriva SystemBackdrop de e exponha as propriedades desejadas.

Construtores

SystemBackdrop()

Inicializa uma nova instância da classe SystemBackdrop.

Propriedades

Dispatcher

Sempre retorna null em um aplicativo SDK do Aplicativo Windows. Em vez disso, use DispatcherQueue .

(Herdado de DependencyObject)
DispatcherQueue

Obtém o ao DispatcherQueue qual esse objeto está associado. O DispatcherQueue representa uma instalação que pode acessar o DependencyObject no thread da interface do usuário mesmo que o código seja iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)

Métodos

ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade de dependência.

(Herdado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa.

(Herdado de DependencyObject)
GetDefaultSystemBackdropConfiguration(ICompositionSupportsSystemBackdrop, XamlRoot)

Recupera um objeto padrão SystemBackdropConfiguration que pode ser passado para ISystemBackdropControllerWithTargets.SetSystemBackdropConfiguration.

GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject.

(Herdado de DependencyObject)
OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop, XamlRoot)

Substitua esse método a ser chamado quando o objeto retornado por GetDefaultSystemBackdropConfiguration alterações. Isso será útil se você estiver usando um personalizado SystemBackdropConfiguration.

OnTargetConnected(ICompositionSupportsSystemBackdrop, XamlRoot)

Chamado quando esse objeto é anexado a um contêiner válido; por exemplo, quando definido em Window.SystemBackdrop.

OnTargetDisconnected(ICompositionSupportsSystemBackdrop)

Chamado quando esse objeto é desmarcado de seu contêiner.

ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, se um valor local for definido.

(Herdado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nesta instância dependencyObject .

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência em um DependencyObject.

(Herdado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback.

(Herdado de DependencyObject)

Aplica-se a

Confira também