SystemBackdrop.OnDefaultSystemBackdropConfigurationChanged 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重写在对象更改返回时要调用的 GetDefaultSystemBackdropConfiguration
此方法。 如果使用自定义 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)
参数
背景的目标。
- xamlRoot
- XamlRoot
背景目标的 XAML 根。
示例
此示例演示使用 MicaController 实现的自定义系统背景类。 方法 OnDefaultSystemBackdropConfigurationChanged
被重写,并在其中将配置 Theme
设置为始终为精简。
例如,如果在应用运行时将系统主题从浅色更改为深色,则调用此方法,并将背景主题设置为浅色,而不是使用系统主题更改为深色。
<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);
}
}
注解
实现包含一些跟踪属性状态的自定义 SystemBackdropConfiguration 但在某些方面不同于默认策略时,此方法非常有用。
重写 ,而不是应用从 GetDefaultSystemBackdropConfiguration (获取的默认背景配置,方法是将其传递给 SetSystemBackdropConfiguration) OnDefaultSystemBackdropConfigurationChanged
。 如果更改了默认策略, (例如用户将系统主题从浅色更改为深色) 时,将调用此方法。 在此方法中,创建新的 SystemBackdropConfiguration 对象,并根据需要设置其属性。 然后将修改的 SystemBackdropConfiguration
传递给 SetSystemBackdropConfiguration。