مقدمه ای بر توسعه دسکتاپ WinUI 3

معرفی
سلام توسعه دهندگان، به وبلاگ من خوش آمدید. در این وبلاگ، من قصد دارم شما را با دنیای Fluent Windows Application Development (WinUI 3) آشنا کنم. در پایان این وبلاگ آموزشی، می توانید یک برنامه دسکتاپ ساده ایجاد کنید که از Windows App SDK برای ارائه یک رابط کاربری Fluent فوق العاده و عملکرد بهتر استفاده می کند. بیا شروع کنیم.
پیش نیازها
برای شروع مطمئن شوید که شرایط زیر را برآورده می کنید.
- ماشینی با ویندوز 11 (ویندوز 10 نیز کار می کند).
- دانش پایه در سی شارپ و دات نت (اختیاری)
- تمایل به یادگیری.
- ثبات.
شروع شدن
- اول از همه، آخرین نسخه Visual Studio Community Edition را از اینجا نصب کنید.
- پس از نصب، گزینه را انتخاب کنید “جامعه ویژوال استودیو” از لیست و مطابق تصویر زیر، زنجیره های ابزار را برای نصب انتخاب کنید.
برخی از اصول را درک کنید
WinUI 3 مؤلفه پلتفرم رابط کاربری بومی است که با Windows App SDK ارائه می شود. توسط آخرین .NET6 پشتیبانی می شود. کل مفهوم این SDK ایجاد برنامه های قدرتمند ویندوز با در نظر گرفتن رابط کاربری روان است. Windows App SDK مجموعه یکپارچه ای از APIها و ابزارهایی را ارائه می دهد که می توانند برای ایجاد برنامه های دسکتاپ تولیدی که ویندوز 10 و بالاتر را هدف قرار می دهند، استفاده شوند و می توانند در فروشگاه مایکروسافت منتشر شوند.
بیایید برنامه خود را توسعه دهیم!
- ابتدا ویژوال استودیو را باز کرده و مطابق شکل زیر بر روی «ایجاد پروژه جدید» کلیک کنید.
- سپس عبارت “Blank App, Packaged (WinUI3 in Desktop)” را جستجو کنید، آن را انتخاب کرده و مطابق شکل زیر روی “Next” کلیک کنید.
- اکنون می خواهیم راه حل خود را نام ببریم. را فایل حل (.sln) اساساً شامل مجموعه ای از پروژه ها یا مجموعه ها است. شما می توانید نام پروژه خود را هر چیزی که می خواهید نام گذاری کنید. من در اینجا از نام “TestApp” استفاده می کنم.
سپس بر روی چک باکس زیر کلیک کنید و روی دکمه “ایجاد” کلیک کنید.
- اگر همان تصویر زیر را دارید، پس خوب هستید که بروید.
تجزیه ساختار پروژه
- اگر به ساختار پروژه شما نگاه کنیم، دو فایل به نام وجود خواهد داشت
MainWindow.xaml
وApp.xaml
(در مورد سایر فایل ها در وبلاگ های آینده توضیح خواهم داد). - اساساً، هنگامی که برنامه راه اندازی می شود، ابتدا “App.xaml” فعال می شود و یک نمونه جدید از آن را راه اندازی می کند.
MainWindow.xaml
که در مورد ما صفحه اصلی ما است. - اگر بر روی نماد فلش بر روی
MainWindow.xaml
فایل، فایل دیگری به نام وجود خواهد داشتMainWindow.xaml.cs
.
- اوم، پس آن دو فایل چیست؟ را
MainWindow.xaml
فایلی است که در آن رابط کاربری برنامه را تعریف می کنید. از زبان نشانه گذاری XAML استفاده می کند که توسط مایکروسافت برای تعریف رابط های کاربری زیبا بدون هیچ دردسری طراحی شده است. - را
MainWindow.xaml.cs
نامیده می شود “کد پشت” پرونده برایMainWindow.xaml
که شامل تمام منطقی است که باید روی UI پیاده سازی شود.
- اگر در را باز کنید
MainWindow.xaml
فایل، چیزی شبیه به کد زیر وجود خواهد داشت.
<!-- Copyright (c) Microsoft Corporation and Contributors. -->
<!-- Licensed under the MIT License. -->
<Window
x:Class="TestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:TestApp"
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">
<Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
</StackPanel>
</Window>
- اگر در را باز کنید
MainWindow.xaml.cs
فایل، چیزی شبیه به این خواهد بود،
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
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;
// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.
namespace TestApp
{
/// <summary>
/// An empty window that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
}
private void myButton_Click(object sender, RoutedEventArgs e)
{
myButton.Content = "Clicked";
}
}
}
- طبق کد فوق الف
Button
در داخل a تعریف شده استStackPanel
(در مورد آن صحبت خواهیم کردPanels
بعد). - را
Button
داردx:Name
اموال وmyButton
به عنوان ارزش آن و الفClick
کنترل کننده رویداد و ارزش آن به عنوانmyButton_Click
و آنContent
ویژگی تنظیم شده بهClick Me
. - و در کد پشت، روشی برای آن تعریف کردیم
Click
مدیریت رویداد نامگذاری شدmyButton_Click
جایی که فعال می شود، آن را تغییر می دهدContent
دارایی ازButton
بهClicked
. ساده نیست؟ - بیایید برنامه خود را اجرا کنیم تا آن را در عمل ببینیم. برای ساخت و اجرای برنامه روی دکمه “TestApp (Package)” کلیک کنید.
- تادا! شما اولین برنامه WinUI 3 خود را ساخته و اجرا کرده اید.
- وقتی روی
Click Me
دکمه، می بینید که دکمه استContent
تغییر کرده است بهClicked
همانطور که در تعریف کردیمMainWindow.xaml.cs
.
بیایید یک برنامه پیشخوان ساده بسازیم
- بنابراین، ما دانش اولیه ای در مورد نحوه عملکرد برنامه WinUI 3 به دست آوردیم. اکنون میتوانیم یک برنامه «شمارنده» ساده بسازیم که تعداد را افزایش و کاهش میدهد.
- برای آن ما به دو مورد نیاز داریم
Button
. یکی برای افزایش و دیگری برای کاهش. - ما همچنین به یک نیاز داریم
TextBlock
برای نمایش مقدار شمارش فعلی
- بیایید با تعریف UI شروع کنیم. به سادگی کد زیر را در خود کپی کنید
MainWindow.xaml
فایل.
<Window
x:Class="TestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:TestApp"
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" Spacing="20">
<Button x:Name="IncrementButton" Click="IncrementButton_Click">
+
</Button>
<TextBlock x:Name="DisplayTextBlock" Width="100" Text="0" TextAlignment="Center"/>
<Button x:Name="DecrementButton" Click="DecrementButton_Click">
-
</Button>
</StackPanel>
</Window>
- همچنین کد زیر را در خود کپی کنید
MainWindow.xaml.cs
فایل.
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
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;
// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.
namespace TestApp
{
/// <summary>
/// An empty window that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainWindow : Window
{
private int count = 0;
public MainWindow()
{
this.InitializeComponent();
}
private void IncrementButton_Click(object sender, RoutedEventArgs e)
{
count++;
DisplayTextBlock.Text = count.ToString();
}
private void DecrementButton_Click(object sender, RoutedEventArgs e)
{
count--;
DisplayTextBlock.Text = count.ToString();
}
}
}
- ما در اصل دو دکمه و آنها را تعریف کردیم
Click
کنترل کننده رویداد در فایل “Code-Behind”. - را
IncrementButton_Click
زمانی آغاز خواهد شدIncrementButton
کلیک می شود و آن را افزایش می دهدcount
مقدار و مقدار شمارش را درDisplayTextBlock
. همین امر برایDecrementButton
هم.
-
بیایید برنامه خود را با کلیک کردن روی دکمه “TestApp (بسته)” در بالا اجرا کنیم.
-
هورا، ما برنامه پیشخوان کاملاً کارآمد خود را ساختیم.
نتیجه
امیدوارم ایده منصفانه ای در مورد برنامه های WinUI 3 داشته باشید و اگر این وبلاگ برای شما جالب بود، من را دنبال کنید و در وبلاگ های آینده من مشترک شوید. بچه ها شما را در وبلاگ جالب بعدی می بینیم 👋.
مراحل بعدی
- سی شارپ را یاد بگیرید [Link]
- XAML را یاد بگیرید [Link]
- WinUI 3 را یاد بگیرید [Link]
- تمام کنترلهای رابط کاربری موجود با برنامه WinUI 3 Controls Gallery را کاوش کنید [Link]