Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
WinUI zapewnia wiele pięknych efektów, animacji i środków do różnicowania. Jednak spełnienie oczekiwań użytkowników dotyczących wydajności i możliwości dostosowywania jest nadal niezbędną częścią tworzenia pomyślnych aplikacji. Aplikacje zestawu SDK aplikacji systemu Windows mogą działać w dużej, zróżnicowanej rodzinie urządzeń z systemem Windows i konfiguracjach, które mają różne funkcje i możliwości. Aby zapewnić inkluzywne środowisko dla wszystkich użytkowników, należy zapewnić skalowanie aplikacji na różnych urządzeniach i przestrzeganie preferencji użytkownika. Dostosowywanie interfejsu użytkownika może zapewnić wydajny sposób wykorzystania możliwości urządzenia i zapewnienia przyjemnego i inkluzywnego środowiska użytkownika.
Dostosowywanie interfejsu użytkownika to szeroka kategoria obejmująca pracę dla wydajnego, pięknego interfejsu użytkownika w odniesieniu do następujących obszarów:
- Przestrzeganie i dostosowywanie do ustawień użytkownika w celu uzyskania efektów
- Dostosowywanie ustawień użytkownika dla animacji
- Optymalizowanie interfejsu użytkownika dla danych możliwości sprzętowych
W tym miejscu omówimy sposób dostosowywania efektów i animacji za pomocą warstwy wizualnej w powyższych obszarach, ale istnieje wiele innych sposobów dostosowania aplikacji w celu zapewnienia doskonałego środowiska użytkownika końcowego. Dokumentacja pomocy jest dostępna na temat dostosowywania interfejsu użytkownika dla różnych urządzeń i tworzenia responsywnego interfejsu użytkownika.
Ustawienia efektów użytkownika
Użytkownicy mogą dostosowywać swoje środowisko systemu Windows z różnych powodów, z których aplikacje powinny szanować i dostosowywać się do nich. Jeden obszar, który użytkownicy końcowi mogą kontrolować, to zmiana rodzajów efektów, które widzą stosowane w całym systemie.
Ustawienia efektów przezroczystości
Jednym z takich ustawień, które użytkownicy mogą dostosować, jest włączenie/wyłączenie efektów przezroczystości. Można je znaleźć w Ustawieniach systemu Windows pod Personalizacja > Kolory lub za pomocą opcji Ustawienia > Ułatwienia dostępu > Ekran.
opcja przezroczystości 
Po włączeniu dowolnego efektu, który używa przezroczystości, będzie wyświetlany zgodnie z oczekiwaniami. Dotyczy to akrylu, HostBackdropBrush lub grafiki efektów niestandardowych, która nie jest całkowicie nieprzezroczysta.
Po wyłączeniu materiał akrylowy automatycznie wróci do stałego koloru, ponieważ pędzel akrylowy XAML domyślnie nasłuchuje tego zdarzenia. W tym miejscu widzimy, że aplikacja kalkulatora odpowiednio wraca do stałego koloru, gdy efekty przezroczystości nie są włączone:
kalkulator 

Jednak w przypadku wszelkich efektów niestandardowych aplikacja musi reagować na właściwość UISettings.AdvancedEffectsEnabled lub zdarzenie AdvancedEffectsEnabledChanged i zmienić efekt lub wykres efektu na taki, który nie ma przezroczystości. Poniżej przedstawiono przykład:
public MainPage()
{
var uisettings = new UISettings();
bool advancedEffects = uisettings.AdvancedEffectsEnabled;
uisettings.AdvancedEffectsEnabledChanged += Uisettings_AdvancedEffectsEnabledChanged;
}
private void Uisettings_AdvancedEffectsEnabledChanged(UISettings sender, object args)
{
// TODO respond to sender.AdvancedEffectsEnabled
}
Ustawienia animacji
Podobnie aplikacje powinny nasłuchiwać i reagować na właściwość UISettings.AnimationsEnabled, aby upewnić się, że animacje są włączone lub wyłączone na podstawie ustawień użytkownika w ustawieniach > ułatwienia dostępu > wyświetlania.
Opcja animacji 
public MainPage()
{
var uisettings = new UISettings();
bool animationsEnabled = uisettings.AnimationsEnabled;
// TODO respond to animations settings
}
Korzystanie z interfejsu API możliwości
Korzystając z interfejsów API CompositionCapabilities, można wykryć, które funkcje kompozycji są dostępne i wydajnie działają na danym sprzęcie oraz dostosować projekt, aby użytkownikom końcowym zapewnić wydajne i estetyczne doświadczenie na dowolnym urządzeniu. Interfejsy API zapewniają środki do sprawdzania możliwości systemu sprzętowego w celu zaimplementowania bezproblemowego skalowania efektu w różnych formach. Ułatwia to odpowiednie dostosowanie aplikacji w celu utworzenia pięknego i bezproblemowego środowiska użytkownika końcowego.
Ten interfejs API udostępnia metody i odbiornik zdarzeń, które można wykorzystać do podejmowania decyzji dotyczących skalowania efektów w interfejsie użytkownika aplikacji. Funkcja wykrywa, jak dobrze system może obsługiwać złożone operacje kompozycji i renderowania, a następnie zwraca informacje w łatwym do użycia modelu dla deweloperów.
Korzystanie z możliwości kompozycji
Funkcjonalność CompositionCapabilities jest już wykorzystywana dla funkcji takich jak materiał akrylowy, gdzie materiał zmienia się na bardziej efektywny efekt w zależności od scenariusza i sprzętu.
Interfejs API można dodać do istniejącego kodu w kilku prostych krokach.
Uzyskaj obiekt capabilities w konstruktorze aplikacji.
_capabilities = new CompositionCapabilities();Zarejestruj możliwości zmienionego odbiornika zdarzeń dla aplikacji.
_capabilities.Changed += HandleCapabilitiesChanged;Dodaj zawartość do metody wywołania zwrotnego dla zdarzenia w celu obsługi różnych poziomów funkcjonalności. Może to być podobne bądź różne od kolejnego kroku poniżej.
Podczas korzystania z efektów najpierw sprawdź obiekt capabilities. Rozważ użycie instrukcji kontroli warunkowej lub przełącznika, w zależności od tego, jak chcesz dostosować efekty.
if (_capabilities.AreEffectsSupported()) { // Add incremental effects updates here if (_capabilities.AreEffectsFast()) { // Add more advanced effects here where applicable } }
Pełny przykładowy kod można znaleźć w repozytorium GitHub Windows UI.
Szybkie i powolne efekty
Na podstawie informacji zwrotnych uzyskanych z metod AreEffectsSupported i AreEffectsFast w interfejsie API CompositionCapabilities, aplikacja może zdecydować się na zamianę kosztownych lub nieobsługiwanych efektów na inne efekty według ich wyboru, które są zoptymalizowane dla urządzenia. Niektóre efekty są znane z tego, że bardziej obciążają zasoby niż inne i powinny być stosowane oszczędnie, podczas gdy inne efekty mogą być używane bardziej swobodnie. W przypadku wszystkich efektów należy jednak zachować ostrożność podczas tworzenia łańcuchów i animowania, ponieważ niektóre scenariusze lub kombinacje mogą zmienić charakterystykę wydajności wykresu efektu. Poniżej przedstawiono ogólne zasady dotyczące charakterystyki wydajności dla poszczególnych efektów.
- Efekty, które są znane, że mają duży wpływ na wydajność, są następujące — Gaussian Blur, Shadow Mask, BackDropBrush, HostBackDropBrush i Layer Visual. Nie są one zalecane w przypadku urządzeń niskiego poziomu (poziom funkcji 9.1-9.3)i powinny być używane rozsądnie na urządzeniach wysokiej klasy.
- Efekty o średnim wpływie na wydajność obejmują Macierz kolorów, niektóre tryby Blend Effect BlendModes (Jaskrawość, Kolor, Nasycenie i Odcień), SpotLight, SceneLightingEffect i (w zależności od scenariusza) BorderEffect. Te efekty mogą działać w określonych scenariuszach na urządzeniach o niskiej wydajności, ale należy zachować ostrożność podczas łączenia efektów i animacji. Zaleca się ograniczenie użycia tylko do dwóch lub mniej i animowanie tylko w przypadku przejść.
- Wszystkie inne efekty mają niski wpływ na wydajność i działają we wszystkich rozsądnych scenariuszach podczas animowania i tworzenia łańcuchów.