SystemBackdrop.OnDefaultSystemBackdropConfigurationChanged Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Invalide este método al que se llamará cuando cambie el objeto devuelto por GetDefaultSystemBackdropConfiguration
. Esto es útil si usa un personalizado SystemBackdropConfiguration
.
protected:
virtual void OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop ^ target, XamlRoot ^ xamlRoot) = OnDefaultSystemBackdropConfigurationChanged;
void OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop const& target, XamlRoot const& xamlRoot);
protected virtual void OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop target, XamlRoot xamlRoot);
function onDefaultSystemBackdropConfigurationChanged(target, xamlRoot)
Protected Overridable Sub OnDefaultSystemBackdropConfigurationChanged (target As ICompositionSupportsSystemBackdrop, xamlRoot As XamlRoot)
Parámetros
El objetivo del telón de fondo.
- xamlRoot
- XamlRoot
Raíz XAML del destino de fondo.
Ejemplos
En este ejemplo se muestra una clase de fondo del sistema personalizada que se implementa mediante MicaController. El OnDefaultSystemBackdropConfigurationChanged
método se invalida y, en él, la configuración Theme
se establece en siempre ligera.
Por ejemplo, si el tema del sistema cambia de Claro a Oscuro mientras se ejecuta la aplicación, se llama a este método y el tema de fondo se establece en Claro en lugar de cambiar a Oscuro con el tema del sistema.
<Window
... >
<Window.SystemBackdrop>
<local:MicaLightSystemBackdrop/>
</Window.SystemBackdrop>
<!-- XAML content -->
</Window>
public class MicaLightSystemBackdrop : SystemBackdrop
{
MicaController micaController;
protected override void OnTargetConnected(ICompositionSupportsSystemBackdrop connectedTarget, XamlRoot xamlRoot)
{
base.OnTargetConnected(connectedTarget, xamlRoot);
if (micaController is not null)
{
throw new Exception("This controller cannot be shared");
}
micaController = new MicaController();
//_ = GetDefaultSystemBackdropConfiguration(connectedTarget, xamlRoot);
micaController.AddSystemBackdropTarget(connectedTarget);
}
protected override void OnTargetDisconnected(ICompositionSupportsSystemBackdrop disconnectedTarget)
{
base.OnTargetDisconnected(disconnectedTarget);
micaController.RemoveSystemBackdropTarget(disconnectedTarget);
micaController = null;
}
protected override void OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop target, XamlRoot xamlRoot)
{
SystemBackdropConfiguration config = new SystemBackdropConfiguration();
config.Theme = SystemBackdropTheme.Light;
micaController.SetSystemBackdropConfiguration(config);
}
}
Comentarios
Este método es útil cuando se implementa una systemBackdropConfiguration personalizada que incorpora algunos de los estados de propiedad de seguimiento, pero es diferente de alguna manera de la directiva predeterminada.
En lugar de aplicar la configuración de fondo predeterminada obtenida de GetDefaultSystemBackdropConfiguration (pasandola a SetSystemBackdropConfiguration), invalide OnDefaultSystemBackdropConfigurationChanged
. Cuando hay un cambio en la directiva predeterminada (por ejemplo, cuando un usuario cambia el tema del sistema de Claro a Oscuro), se llama a este método. En este método, cree un nuevo objeto SystemBackdropConfiguration y establezca sus propiedades según sea necesario. A continuación, pase el modificado SystemBackdropConfiguration
a SetSystemBackdropConfiguration.