SystemBackdrop Classe
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- Derivato
- Attributi
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;
}
}
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:
- ambiente/criterio impostato tramite SystemBackdropConfiguration
- i parametri di aspetto del materiale, esposti tramite proprietà generali come ISystemBackdropControllerWithTargets.State () e proprietà specifiche del materiale come MicaController.Kind (
Base
Active
HighContrast
/BaseAlt
Fallback
//).
I controller predefiniti (MicaController e DesktopAcrylicController) supportano i parametri seguenti per personalizzarne l'aspetto: FallbackColor
, LuminosityOpacity
, TintColor
e TintOpacity
. Gli sfondo del sistema predefiniti (MicaBackdrop e DesktopAcrylicBackdrop) non espongono FallbackColor
o le proprietà di personalizzazione dei materiali (TintOpacity
e 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.
System |
Inizializza una nuova istanza della classe |
Dispatcher |
Restituisce |
Dispatcher |
Ottiene l'oggetto |
Clear |
Cancella il valore locale di una proprietà di dipendenza. (Ereditato da DependencyObject) |
Get |
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) |
Get |
Recupera un oggetto predefinito |
Get |
Restituisce il valore effettivo corrente di una proprietà di dipendenza da un oggetto DependencyObject. (Ereditato da DependencyObject) |
On |
Eseguire l'override di questo metodo da chiamare quando l'oggetto restituito dalle |
On |
Chiamato quando questo oggetto è collegato a un contenitore valido; ad esempio, se impostato su |
On |
Chiamato quando questo oggetto viene cancellato dal contenitore. |
Read |
Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale. (Ereditato da DependencyObject) |
Register |
Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica. (Ereditato da DependencyObject) |
Set |
Imposta il valore locale di una proprietà di dipendenza in un oggetto DependencyObject. (Ereditato da DependencyObject) |
Unregister |
Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback. (Ereditato da DependencyObject) |