Поделиться через


SystemBackdrop Класс

Определение

Базовый класс для пользовательских системных фонов, используемых для отрисовки таких материалов, как Mica и Акрил.

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
Наследование
Object Platform::Object IInspectable DependencyObject SystemBackdrop
Производный
Атрибуты

Примеры

В этом примере показан пользовательский класс фона системы, реализованный с помощью MicaController.

Вызов базового метода OnTargetConnected инициализирует объект конфигурации по умолчанию, возвращаемый Командлетом GetDefaultSystemBackdropConfiguration , для отражения изменений среды, влияющих на этот SystemBackdrop экземпляр (задается параметром connectedTarget, XamlRoot).

Хотя пример на этой странице не поддерживает совместное использование MicaSystemBackdrop экземпляров (например, Window1.SystemBackdrop = Window2.SystemBackdrop = myMicaSystemBackdrop), такой общий доступ возможен и поддерживается встроенными MicaBackdrop материалами и DesktopAcrylicBackdrop . Чтобы реализовать общий доступ в пользовательском материале, векторизируйте резервное хранилище ISystemBackdropController , чтобы сохранить отдельный экземпляр для каждого контекста использования (например, с помощью карты, ключом к connectedTarget). Обратите внимание, что аналогичным образом векторизирует связанные объекты конфигурации по умолчанию, возвращаемые Командлетом GetDefaultSystemBackdropConfiguration, гарантируя, что SystemBackdrop конфигурация отражает каждый контекст использования при SystemBackdrop совместном использовании.

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

Комментарии

Используйте этот класс для создания настраиваемого системного фона. Вы не создаете этот класс напрямую (обратите внимание на защищенный конструктор). Вместо этого укажите его подкласс, чтобы добавить настраиваемую поддержку. Можно также использовать один из встроенных производных классов MicaBackdrop и DesktopAcrylicBackdrop.

Как правило, пользовательский материал переопределяет OnTargetConnected для создания и настройки резервного ISystemBackdropController, который будет управлять CompositionBrush , используемым для заполнения области фона. На конечную отрисовку пикселей кисти влияют:

  • среда или политика, заданные с помощью SystemBackdropConfiguration
  • параметры внешнего вида материала, предоставляемые с помощью общих свойств, таких как ISystemBackdropControllerWithTargets.State (Active/Fallback/HighContrast), и свойств для конкретных материалов, таких как MicaController.Kind ().Base/BaseAlt

Встроенные контроллеры (MicaController и DesktopAcrylicController) поддерживают следующие параметры для настройки внешнего вида: FallbackColor, LuminosityOpacity, TintColorи TintOpacity. Встроенные системные фоны (MicaBackdrop и DesktopAcrylicBackdrop) не предоставляют FallbackColor или свойства настройки материала (TintOpacityи т. д.). Вместо этого они используют конфигурации по умолчанию Light/Dark базовых MicaController и DesktopAcrylicController. Чтобы настроить эти свойства, создайте пользовательский класс материала, который является производным от SystemBackdrop , и предоставляет требуемые свойства.

Конструкторы

SystemBackdrop()

Инициализирует новый экземпляр класса SystemBackdrop.

Свойства

Dispatcher

Всегда возвращает в null приложении Windows App SDK. Вместо этого используйте DispatcherQueue .

(Унаследовано от DependencyObject)
DispatcherQueue

Возвращает объект , DispatcherQueue с которым связан этот объект. представляет DispatcherQueue средство, которое может получить доступ к в потоке DependencyObject пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу.

(Унаследовано от DependencyObject)

Методы

ClearValue(DependencyProperty)

Очищает локальное значение свойства зависимостей.

(Унаследовано от DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна.

(Унаследовано от DependencyObject)
GetDefaultSystemBackdropConfiguration(ICompositionSupportsSystemBackdrop, XamlRoot)

Извлекает объект по умолчанию SystemBackdropConfiguration , который может быть передан в ISystemBackdropControllerWithTargets.SetSystemBackdropConfiguration.

GetValue(DependencyProperty)

Возвращает текущее действующее значение свойства зависимостей из DependencyObject.

(Унаследовано от DependencyObject)
OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop, XamlRoot)

Переопределите этот метод для вызова при изменении объекта, возвращаемого методом GetDefaultSystemBackdropConfiguration . Это полезно, если вы используете пользовательский SystemBackdropConfiguration.

OnTargetConnected(ICompositionSupportsSystemBackdrop, XamlRoot)

Вызывается при присоединении этого объекта к допустимому контейнеру; Например, если задано значение .Window.SystemBackdrop

OnTargetDisconnected(ICompositionSupportsSystemBackdrop)

Вызывается при очистке этого объекта из контейнера.

ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если задано локальное значение.

(Унаследовано от DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Регистрирует функцию уведомления для прослушивания изменений определенного DependencyProperty в этом экземпляре DependencyObject .

(Унаследовано от DependencyObject)
SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей для Объекта DependencyObject.

(Унаследовано от DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова Метода RegisterPropertyChangedCallback.

(Унаследовано от DependencyObject)

Применяется к

См. также раздел