Základní příklad C++/WinRT Knihovna uživatelského rozhraní Windows 2 (UPW)

Toto téma vás provede procesem přidání základní podpory pro Knihovna uživatelského rozhraní Windows (WinUI) do projektu C++/WinRT UWP. Konkrétně se toto téma zabývá WinUI 2, který je určen pro aplikace UWP. Pro desktopové aplikace existuje WinUI 3. Mimochodem, WinUI je sám napsaný v C++/WinRT.

Důležité

Pro desktopové aplikace poskytuje Windows App SDKKnihovna uživatelského rozhraní Windows (WinUI) 3. WinUI 3 není určen pro práci s návodem v tomto tématu, což je pro UPW. Viz také migrace z UPW na Windows App SDK.

Note

Sada nástrojů Knihovna uživatelského rozhraní Windows (WinUI) je k dispozici jako balíčky NuGet, které můžete přidat do libovolného existujícího nebo nového projektu pomocí Visual Studio, jak uvidíme v tomto tématu. Další informace o pozadí, nastavení a podpoře najdete v tématu Začínáme s Knihovna uživatelského rozhraní Windows.

Vytvoření prázdné aplikace (HelloWinUICppWinRT)

V Visual Studio vytvořte nový projekt UPW pomocí šablony projektu Prázdná aplikace (C++/WinRT) (pro desktopové aplikace WinUI 3 použijte šablonu Prázdná aplikace, Zabalená (WinUI 3 v desktopové aplikaci). Ujistěte se, že používáte šablonu (C++/WinRT), a ne šablonu (Universal Windows).

Nastavte název nového projektu na HelloWinUICppWinRT a (aby struktura složek odpovídala návodu) zrušte zaškrtnutí políčka Umístit řešení a projekt do stejného adresáře.

Nainstalujte balíček NuGet Microsoft.UI.Xaml

Klikněte na Project>Manage NuGet Packages...>Browse, do vyhledávacího pole zadejte nebo vložte Microsoft.UI.Xaml, ve výsledcích hledání vyberte příslušnou položku a potom kliknutím na Install nainstalujte balíček do svého projektu (zobrazí se také výzva k odsouhlasení licenční smlouvy). Dávejte pozor, abyste nainstalovali jenom Microsoft. UI. Balíček Xaml, nikoli Microsoft. UI. Xaml.Core.Direct.

Deklarace prostředků aplikace WinUI

Otevřete App.xaml a vložte následující kód mezi existující počáteční a zavírací značky aplikace .

<Application.Resources>
    <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
</Application.Resources>

Přidání ovládacího prvku WinUI do MainPage

Pak otevřete MainPage.xaml. Ve stávající úvodní značce Page existují některé deklarace oboru názvů XML. Přidejte deklaraci oboru názvů XML xmlns:muxc="using:Microsoft.UI.Xaml.Controls". Potom vložte následující značky mezi existující otevírací a zavírací tagy Page a přepište přitom existující prvek StackPanel.

<muxc:NavigationView PaneTitle="Welcome">
    <TextBlock Text="Hello, World!" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TitleTextBlockStyle}"/>
</muxc:NavigationView>

Podle potřeby upravte soubor pch.h.

Když do projektu C++/WinRT přidáte balíček NuGet (například balíček Microsoft.UI.Xaml, který jste přidali dříve) a projekt sestavíte, nástroje vygenerují ve složce \Generated Files\winrt projektu sadu hlavičkových souborů projekce. Pokud jste postupovali podle návodu, budete teď mít \HelloWinUICppWinRT\HelloWinUICppWinRT\Generated Files\winrt složku. Pokud chcete tyto soubory hlaviček přenést do projektu, takže odkazy na tyto nové typy se přeloží, můžete přejít do předkompilovaného hlavičkového souboru (obvykle pch.h) a zahrnout je.

Musíte zahrnout pouze hlavičky, které odpovídají typům, které používáte. Tady je ale příklad, který obsahuje všechny vygenerované soubory hlaviček pro Microsoft. UI. Balíček Xaml

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

Upravit MainPage.cpp

V MainPage.cpp odstraňte kód ve vaší implementaci MainPage::ClickHandler, protože myButton už není v kódu XAML.

Teď můžete sestavit a spustit projekt.

Snímek obrazovky jednoduché knihovny Windows UI pro C++/WinRT