Hello World-alkalmazás létrehozása c# és WinUI 3 / Windows App SDK használatával
Ebben az útmutatóban a Visual Studio 2022 és a WinUI 3/Windows App SDK használatával készítünk egy windowsos asztali alkalmazást, amely az indításkor a "Hello world!" szöveget jeleníti meg:
Ez az útmutató kezdőknek szól,, és nem feltételezi a Windows asztali fejlesztéssel kapcsolatos ismereteit.
Előfeltételek
Ez az oktatóanyag a Visual Studiót használja, és a WinUI 3 üres alkalmazássablonra épül. A beállításhoz kövesse A WinUIhasználatának első lépéseit. Telepíti a Visual Studiót, konfigurálja az alkalmazásfejlesztéshez a WinUI-val, létrehozza a Hello World projektet, és győződjön meg arról, hogy a WinUI legújabb verziójával rendelkezik.
Ha ezt megtette, térjen vissza ide, és tudjon meg többet a Hello World projektről, és frissítse azt.
Az üres alkalmazásprojekt áttekintése
A Visual Studio WinUI-projektsablonjai mindent tartalmaznak, amire szüksége van az alkalmazás létrehozásához és futtatásához. Az Üres alkalmazás sablon létrehoz egy ablakot egy interaktív gombbal, amely így néz ki, amikor hibakeresési módban futtatja.
alatt fut
Kattintson a Click Me
gombra a eseménykezelésbemutatásához.
Ebben az esetben a gomb vezérlőelem Click eseménye a myButton_Click
lévő MainWindow.xaml.cs
eseménykezelőhöz van kötve.
Bár MainWindow.xaml.cs
a főablak üzleti logikáját problémákat tartalmazza kód mögötti fájl formájában, bemutatása problémák MainWindow.xaml
:
A üzleti logika és a megjelenítéssel kapcsolatos kérdések elkülönítése lehetővé teszi az adatok és események oda-vissza kötését az alkalmazás felhasználói felületéhez, egy konzisztens alkalmazásfejlesztési minta használatával.
A projekt fájlstruktúrája
A kód módosítása előtt tekintsük át a projekt fájlstruktúráját. Ez a(z) Megoldáskezelőtalálható.
Borravaló
A Megoldáskezelőhöz hasonló funkciók megkereséséhez kattintson a navigációs sáv Keresés gombjára, és használja a Funkciókeresés lehetőséget.
A projekt fájlstruktúrája jelenleg így néz ki:
Ez a táblázat a fájlokat írja le, felülről kiindulva és lefelé dolgozva:
Fájlnév és Kép hivatkozási száma |
Leírás |
---|---|
Solution 'Hello World' 1. |
Ez egy megoldásfájl, amely a projekteklogikai tárolója. A projektek gyakran alkalmazások, de az osztálykódtárakat is támogatják. |
Hello World 2. |
Ez egy projektfájl, amely az alkalmazás fájljainak logikai tárolója. |
Dependencies 3. |
Az alkalmazás keretrendszerektől (például .NET és a Windows SDK), és csomagoktól függ (például Windows App SDK). Ahogy kifinomultabb funkciókat és külső kódtárakat vezet be az alkalmazásba, itt további függőségek jelennek meg. |
Properties 4. |
A WinUI 3-projektek konvenció szerint közzéteszik a profilokat, és elindítják a konfigurációs fájlokat ebben a mappában. |
PublishProfiles 5. |
A közzétételi profilok határozzák meg az alkalmazás közzétételi konfigurációját különböző platformokon. |
launchSettings.json 6. |
Ez a fájl lehetővé teszi indítási profilok konfigurálását, amelyek az alkalmazás dotnet run keresztüli futtatásakor használhatók. |
Assets 7. |
Ez a mappa tartalmazza az alkalmazás emblémáját, képeit és egyéb médiaeszközeit. |
app.manifest 8. |
Ez az alkalmazásjegyzékfájl az alkalmazás felhasználói eszközökön való telepítésekor az alkalmazás windowsos megjelenítésének módjához kapcsolódó konfigurációt tartalmaz. |
App.xaml 9. |
Ez a korrektúrafájl határozza meg azokat a megosztott, globálisan elérhető erőforrásokat, amelyektől az alkalmazás függ. |
App.xaml.cs 10. |
Ez a kód mögötti fájl az alkalmazás üzleti logikájának belépési pontját jelöli. A MainWindow egy példányának létrehozásáért és aktiválásáért felelős. |
MainWindow.xaml 11. |
Ez a korrektúrafájl az alkalmazás főablakának bemutatóira vonatkozó aggályokat tartalmazza. |
MainWindow.xaml.cs 12. |
Ez a kód mögötti fájl az alkalmazás főablakához kapcsolódó üzleti logikai problémákat tartalmazza. |
Package.appxmanifest 13. |
Ez a csomagjegyzékfájl lehetővé teszi a közzétevők adatainak, emblémáinak, processzorarchitektúráinak és egyéb adatainak konfigurálását, amelyek meghatározzák, hogyan jelenik meg az alkalmazás a Windows Áruházban. |
"Hello world!" megjelenítése
Ha a "Hello world!" szöveget szeretné megjeleníteni a "Kattintásra" gomb helyett, navigáljon a MainWindow.xaml
-hoz. Látnia kellene egy StackPanel
vezérlőelem XAML-jelölését.
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
</StackPanel>
Borravaló
Windows-alkalmazások létrehozásakor gyakran hivatkozhat API-referencia-dokumentumokra.
StackPanel referencia-dokumentumai többet StackPanel
vezérlőről és testreszabásáról.
Frissítsük a StackPanel
vezérlőt, hogy piros szöveggel jelenítsük meg a Hello world!
:
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock x:Name="myText" Text="Hello world!" Foreground="Red"/>
</StackPanel>
Ha most próbálja futtatni az alkalmazást, a Visual Studio hibaüzenetet küld a The name 'myButton' does not exist in the current context
sorai mentén. Ennek az az oka, hogy a bemutató réteget egy új vezérlővel frissítettük, de a régi vezérlő üzleti logikáját nem frissítettük a kód mögötti fájlban.
Lépjen rá MainWindow.xaml.cs
, majd törölje a myButton_Click
eseménykezelőt. Ezt megteheti, mert az interaktív Click me
gombot statikus Hello world!
szövegre cseréltük. A főablak üzleti logikájának most a következőképpen kell kinéznie:
public sealed partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
}
// ↓ you can delete this ↓
//private void myButton_Click(object sender, RoutedEventArgs e)
//{
// myButton.Content = "Clicked";
//}
}
Az alkalmazás alaphelyzetbe állításához válassza a Build > Rebuild Solution (Build > Rebuild Solution) lehetőséget a menüből, vagy nyomja le a Ctrl + Shift + B billentyűkombinációt. Ezután indítsa újra az alkalmazást a Visual Studio eszköztár "Start" gombjára kattintva vagy az F5 billentyű lenyomásával.
Az alkalmazás frissülni fog, és piros Hello world!
-t kellene látnia.
Az alkalmazás címsorának frissítése
this.Title = "Hello world!";
hozzáadása a MainWindow.xaml.cs
kód mögötti fájlhoz:
public MainWindow()
{
this.InitializeComponent();
this.Title = "Hello world!"; // <- this is new
}
Ha újraindítja az alkalmazást, a szövegtörzsben és a címsorban is látnia kell a Hello world!
:
Gratulálok! Elkészítette az első Windows App SDK/WinUI 3 alkalmazást.
Emlékeztető
Az alábbiakat hajtotta végre ebben az útmutatóban:
- A Visual Studio projektsablonnal kezdte.
- Olyan eseménykezelő tapasztalt, amely egy
Button
vezérlőelemClick
eseményét egy felhasználói felület frissítéséhez kötötte. - Megismerkedett a bemutatók üzleti logikával szorosan összekapcsolt XAML-korrektúrafájlokkal és C#-kód mögötti fájlok.
- Ön áttekintette a WinUI 3 alapértelmezett projekt fájlstruktúráját.
- A prezentációs réteget (XAML-jelölést) és az üzleti logikát (kód háttér) is módosította, hogy támogassa a
TextBlock
-en belüli újStackPanel
. - Áttekintette referencia-dokumentumokat a
StackPanel
vezérlő tulajdonságainakjobb megértéséhez. - Frissítette a főablak címsorát.
Teljes kódfájlok
<!-- MainWindow.xaml -->
<Window
x:Class="Hello_World.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Hello_World"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock x:Name="myText" Text="Hello world!" Foreground="Red"/>
</StackPanel>
</Window>
// MainWindow.xaml.cs
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
namespace Hello_World
{
public sealed partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
this.Title = "Hello world!";
}
}
}
<!-- App.xaml -->
<Application
x:Class="Hello_World.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Hello_World">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<!-- Other merged dictionaries here -->
</ResourceDictionary.MergedDictionaries>
<!-- Other app resources here -->
</ResourceDictionary>
</Application.Resources>
</Application>
// App.xaml.cs
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Microsoft.UI.Xaml.Shapes;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.Foundation;
using Windows.Foundation.Collections;
namespace Hello_World
{
public partial class App : Application
{
public App()
{
this.InitializeComponent();
}
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
m_window = new MainWindow();
m_window.Activate();
}
private Window m_window;
}
}
GYIK
K: Mit jelent a "csomagolt" kifejezés?
A Windows-alkalmazások különböző alkalmazáscsomagolási formátumok használatával kézbesíthetők a végfelhasználóknak. Amikor WinUI-t és Windows App SDK-t használ, a csomagolt alkalmazások az MSIX segítségével csomagolják az alkalmazást, biztosítva ezzel a végfelhasználóknak a kényelmes telepítést és frissítéseket. További információért tekintse meg központi telepítési architektúrát és a keretrendszerfüggő alkalmazások áttekintését.
K: Használhatom a VS Code-ot WinUI-alkalmazások létrehozásához?
Bár technikailag lehetséges, határozottan javasoljuk a Visual Studio 2022 használatát asztali alkalmazások WinUI és Windows App SDK használatával történő létrehozásához. A Windows fejlesztői GYIK további információért.
K: Használhatom a C++-ot WinUI-alkalmazások létrehozásához?
Igen! További információért lásd: A C++/WinRTbevezetése.
Kapcsolódó
- Mintaalkalmazások Windows fejlesztéshez
- Windows-fejlesztő – gyakori kérdések
- Windows fejlesztői szószedet
- ajánlott windowsos fejlesztési eljárások
Windows developer