برنامه نویسی

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

معرفی

سلام توسعه دهندگان، به وبلاگ من خوش آمدید. در این وبلاگ، من قصد دارم شما را با دنیای Fluent Windows Application Development (WinUI 3) آشنا کنم. در پایان این وبلاگ آموزشی، می توانید یک برنامه دسکتاپ ساده ایجاد کنید که از Windows App SDK برای ارائه یک رابط کاربری Fluent فوق العاده و عملکرد بهتر استفاده می کند. بیا شروع کنیم.


پیش نیازها

برای شروع مطمئن شوید که شرایط زیر را برآورده می کنید.

  • ماشینی با ویندوز 11 (ویندوز 10 نیز کار می کند).
  • دانش پایه در سی شارپ و دات نت (اختیاری)
  • تمایل به یادگیری.
  • ثبات.

شروع شدن

  • اول از همه، آخرین نسخه Visual Studio Community Edition را از اینجا نصب کنید.
  • پس از نصب، گزینه را انتخاب کنید “جامعه ویژوال استودیو” از لیست و مطابق تصویر زیر، زنجیره های ابزار را برای نصب انتخاب کنید.

VS نصب کنید


برخی از اصول را درک کنید

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.

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)” کلیک کنید.

Build Run

  • تادا! شما اولین برنامه 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]

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا