Condividi tramite


SystemBackdrop Classe

Definizione

Classe di base per scenari di sistema personalizzati usati per eseguire il rendering di materiali come Mica e Acrilico.

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
Ereditarietà
Object Platform::Object IInspectable DependencyObject SystemBackdrop
Derivato
Attributi

Esempio

Questo esempio mostra una classe di sfondo del sistema personalizzata implementata con MicaController.

La chiamata al metodo OnTargetConnected di base inizializza l'oggetto di configurazione predefinito restituito da GetDefaultSystemBackdropConfiguration per riflettere le modifiche dell'ambiente che influiscono su questa SystemBackdrop istanza (specificata da connectedTarget, XamlRoot).

Anche se l'esempio in questa pagina non supporta le istanze di condivisione (ad esempio, Window1.SystemBackdrop = Window2.SystemBackdrop = myMicaSystemBackdrop), tale condivisione MicaSystemBackdrop è possibile e è supportata dai materiali e DesktopAcrylicBackdrop predefinitiMicaBackdrop. Per implementare la condivisione in un materiale personalizzato, vettorizzare l'archiviazione ISystemBackdropController per mantenere un'istanza separata per ogni contesto di utilizzo, ad esempio tramite una mappa chiave su connectedTarget. Si noti che in modo analogo vettorizza gli oggetti di configurazione predefiniti associati restituiti da GetDefaultSystemBackdropConfiguration, assicurando che SystemBackdrop la configurazione rifletta ogni contesto di utilizzo quando SystemBackdrop viene condiviso.

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

Commenti

Usare questa classe per creare uno sfondo di sistema personalizzato. Questa classe non viene creata direttamente (si noti il costruttore protetto). Al contrario, sottoclasse per aggiungere il supporto personalizzato. È anche possibile usare una delle classi derivate predefinite, MicaBackdrop e DesktopAcrylicBackdrop.

In genere, il materiale personalizzato esegue l'override di OnTargetConnected per creare e configurare un backup di ISystemBackdropController, che gestirà CompositionBrush usato per riempire l'area di sfondo. Il rendering del pixel finale del pennello è interessato da:

I controller predefiniti (MicaController e DesktopAcrylicController) supportano i parametri seguenti per personalizzarne l'aspetto: FallbackColor, LuminosityOpacity, TintColore TintOpacity. Gli sfondo del sistema predefiniti (MicaBackdrop e DesktopAcrylicBackdrop) non espongono FallbackColor o le proprietà di personalizzazione dei materiali (TintOpacitye così via). Si basano invece sulle configurazioni predefinite Light/Dark del sottostante MicaController e DesktopAcrylicController. Per personalizzare queste proprietà, creare una classe di materiale personalizzata che deriva da SystemBackdrop ed esporre le proprietà desiderate.

Costruttori

SystemBackdrop()

Inizializza una nuova istanza della classe SystemBackdrop.

Proprietà

Dispatcher

Restituisce null sempre in un'app SDK per app di Windows. Usare invece DispatcherQueue .

(Ereditato da DependencyObject)
DispatcherQueue

Ottiene l'oggetto DispatcherQueue associato. Rappresenta DispatcherQueue una struttura che può accedere al thread dell'interfaccia utente anche se il codice viene avviato da un thread non dell'interfaccia DependencyObject utente.

(Ereditato da DependencyObject)

Metodi

ClearValue(DependencyProperty)

Cancella il valore locale di una proprietà di dipendenza.

(Ereditato da DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva.

(Ereditato da DependencyObject)
GetDefaultSystemBackdropConfiguration(ICompositionSupportsSystemBackdrop, XamlRoot)

Recupera un oggetto predefinito SystemBackdropConfiguration che può essere passato a ISystemBackdropControllerWithTargets.SetSystemBackdropConfiguration.

GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza da un oggetto DependencyObject.

(Ereditato da DependencyObject)
OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop, XamlRoot)

Eseguire l'override di questo metodo da chiamare quando l'oggetto restituito dalle GetDefaultSystemBackdropConfiguration modifiche. Questo è utile se si usa un oggetto personalizzato SystemBackdropConfiguration.

OnTargetConnected(ICompositionSupportsSystemBackdrop, XamlRoot)

Chiamato quando questo oggetto è collegato a un contenitore valido; ad esempio, se impostato su Window.SystemBackdrop.

OnTargetDisconnected(ICompositionSupportsSystemBackdrop)

Chiamato quando questo oggetto viene cancellato dal contenitore.

ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale.

(Ereditato da DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica.

(Ereditato da DependencyObject)
SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza in un oggetto DependencyObject.

(Ereditato da DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback.

(Ereditato da DependencyObject)

Si applica a

Vedi anche