Udostępnij za pośrednictwem


Wprowadzenie do interfejsu WinUI 2 dla platformy UWP

WinUI 2.8 to najnowsza stabilna wersja systemu WinUI, która może być używana do tworzenia produkcyjnych aplikacji platformy UWP (i aplikacji desktopowych przy użyciu wysp XAML).

Biblioteka jest dostępna jako pakiet NuGet, który można dodać do dowolnego nowego lub istniejącego projektu programu Visual Studio.

Uwaga / Notatka

Aby uzyskać więcej informacji na temat tworzenia aplikacji klasycznych systemu Windows przy użyciu najnowszej wersji WinUI 3, zobacz WinUI 3.

Konfigurowanie programu Visual Studio na potrzeby programowania na platformie UWP

Pobierz program Visual Studio 2022 i zainstaluj narzędzia do tworzenia aplikacji platformy UWP. Aby uzyskać bardziej szczegółowe instrukcje, zobacz Tworzenie aplikacji platformy UWP w dokumentacji programu Visual Studio.

Na karcie Obciążenia aplikacji Instalator programu Visual Studio wybierz następujące obciążenia i składniki:

  • Wybierz obciążenie Tworzenie aplikacji WinUI . Następnie w okienku Szczegóły instalacji w węźle Tworzenie aplikacji WinUI wybierz wymaganą opcję platformy UWP (spowoduje to również wybranie dodatkowych wymaganych składników).

    • W języku C# wybierz pozycję Narzędzia platformy uniwersalnej systemu Windows.
    • W przypadku języka C++wybierz pozycję Narzędzia platformy uniwersalnej systemu Windows języka C++ (wersja 14x) ( wybierz najnowszą wersję, chyba że masz określony powód używania starszej wersji).

Uwaga / Notatka

W programie Visual Studio 17.10 — 17.12 to obciążenie jest nazywane programowaniem aplikacji systemu Windows.

Pobieranie i instalowanie interfejsu WinUI

  1. Otwórz istniejący projekt lub utwórz nowy projekt przy użyciu szablonu Pusta aplikacja w obszarze Visual C# > Windows Uniwersalne > lub odpowiedniego szablonu dla projekcji językowej.

    Ważne

    Aby użyć interfejsu WinUI 2.8, należy ustawić wartość TargetPlatformVersion >= 10.0.18362.0 i TargetPlatformMinVersion >= 10.0.17763.0 we właściwościach projektu.

  2. W panelu Eksplorator rozwiązań kliknij prawym przyciskiem myszy nazwę projektu i wybierz pozycję Zarządzaj pakietami NuGet.

    Zrzut ekranu przedstawiający panel Eksploratora rozwiązań z klikniętym prawym przyciskiem myszy projektem i wyróżnioną opcją Zarządzaj pakietami NuGet.
    Panel Eksploratora rozwiązań z projektem klikniętym prawym przyciskiem myszy i wyróżnioną opcją Zarządzaj pakietami NuGet.

  3. W menedżera pakietów NuGet, wybierz kartę Przeglądaj i wyszukaj Microsoft.UI.Xaml lub WinUI. Wybierz pakiety NuGet WinUI, których chcesz użyć (pakiet Microsoft.UI.Xaml zawiera kontrolki Fluent i funkcje odpowiednie dla wszystkich aplikacji). Kliknij przycisk Zainstaluj.

    Zaznacz pole wyboru "Uwzględnij wersję wstępną", aby wyświetlić najnowsze wersje wstępne zawierające eksperymentalne nowe funkcje.

    Zrzut ekranu przedstawiający okno dialogowe Menedżera pakietów NuGet, pokazujący kartę Przeglądaj z wpisanym "win u i" w polu wyszukiwania i zaznaczoną opcją Uwzględnij wersje przedpremierowe.
    okno dialogowe Menedżera pakietów NuGet pokazuje kartę Przeglądaj z napisem 'winui' w polu wyszukiwania i zaznaczoną opcją Uwzględnij wstępne wersje.

  4. Dodaj zasoby motywu WinUI do pliku App.xaml.

    Istnieją dwa sposoby, aby to zrobić, w zależności od tego, czy masz dodatkowe zasoby aplikacji.

    a. Jeśli nie potrzebujesz innych zasobów aplikacji, dodaj element resources WinUI XamlControlsResources, jak pokazano w poniższym przykładzie:

    <Application
        x:Class="ExampleApp.App"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        RequestedTheme="Light">
    
        <Application.Resources>
            <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
        </Application.Resources>
    
    </Application>
    

    b. Jeśli masz inne zasoby, zalecamy dodanie ich do XamlControlsResources.MergedDictionaries. To współpracuje z systemem zasobów platformy, aby umożliwić przesłonięcie zasobów XamlControlsResources.

    <Application
        x:Class="ExampleApp.App"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:controls="using:Microsoft.UI.Xaml.Controls"
        RequestedTheme="Light">
    
        <Application.Resources>
            <controls:XamlControlsResources>
                <controls:XamlControlsResources.MergedDictionaries>
                    <ResourceDictionary Source="/Styles/Styles.xaml"/>
                    <!-- Other app resources here -->
                </controls:XamlControlsResources.MergedDictionaries>
            </controls:XamlControlsResources>
        </Application.Resources>
    
    </Application>
    
  5. Dodaj odwołanie do pakietu WinUI zarówno na stronach XAML, jak i/lub w kodzie stron.

    • Na stronie XAML dodaj odwołanie w górnej części strony

      xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
      
    • W kodzie (jeśli chcesz używać nazw typów bez ich kwalifikowania), możesz dodać dyrektywę using.

      using MUXC = Microsoft.UI.Xaml.Controls;
      

Dodatkowe kroki dla projektu C++/WinRT

Po dodaniu pakietu NuGet do projektu C++/WinRT narzędzie generuje zestaw nagłówków projekcji w folderze \Generated Files\winrt projektu. Aby przenieść te pliki nagłówków do projektu, aby odwołania do tych nowych typów zostały rozwiązane, możesz przejść do wstępnie skompilowanego pliku nagłówka (zazwyczaj pch.h) i dołączyć je. Poniżej znajduje się przykład zawierający wygenerowane pliki nagłówków dla pakietu Microsoft.UI.Xaml.

// pch.h
...
#include <winrt/Microsoft.UI.Xaml.Automation.Peers.h>
#include <winrt/Microsoft.UI.Xaml.Controls.Primitives.h>
#include <winrt/Microsoft.UI.Xaml.Media.h>
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
...

Aby uzyskać pełny przewodnik krok po kroku dotyczący dodawania prostej obsługi interfejsu WinUI do projektu C++/WinRT, zobacz A simple C++/WinRT WinUI example.

Usługa WinUI w usłudze GitHub

W repozytorium microsoft-ui-xaml w usłudze GitHub witamy raporty o błędach.