C# ve WinUI 3 / Windows Uygulama SDK'sı kullanarak Hello World uygulaması oluşturma
Makale
Bu nasıl yapılır makalesinde Visual Studio 2022 ve WinUI 3 / Windows Uygulama SDK'sını kullanarak başlatıldığında "Merhaba dünya!" ifadesini görüntüleyen bir Windows masaüstü uygulaması oluşturacağız:
Bu kılavuz yeni başlayanlar için hazırlanmıştır ve Windows masaüstü geliştirme hakkında hiçbir varsayımda bulunmaz.
Önkoşullar
Bu öğreticide Visual Studio kullanılır ve WinUI 3 boş uygulama şablonunu temel alır. Kurulumu yapmak için WinUI ile kullanmaya başlamayönergelerini izleyin. Visual Studio'yu yükleyecek, WinUI ile uygulama geliştirmek için yapılandıracak, Hello World projesini oluşturacak ve WinUI'nin en son sürümüne sahip olduğunuzdan emin olacaksınız.
Bunu yaptıktan sonra, Hello World projesi hakkında daha fazla bilgi edinmek ve bu projede bazı güncelleştirmeler yapmak için buraya geri dönün.
Boş uygulama projesini gözden geçirme
Visual Studio'daki WinUI proje şablonları, uygulamanızı derlemek ve çalıştırmak için ihtiyacınız olan her şeyi içerir. Boş Uygulama şablonu, hata ayıklama modunda çalıştırdığınızda şuna benzer etkileşimli bir Düğme içeren bir Pencere oluşturur.
Click Megösterimi için düğmesine tıklayın:
'Bana Tıkla' düğmesi
Bu durumda, bir Düğmesi denetiminin Tıklama olayı, myButton_Clickkonumunda bulunan MainWindow.xaml.cs olay işleyicisine bağlıdır.
'Bana Tıkla' düğmesinin olay işleyicisi, ana pencerenizin arka planda kod dosyasında bulunur.
MainWindow.xaml.cs, ana penceremizin iş mantığı arka planda kod dosyası biçiminde kaygılar içerse de, sunusu endişeleri MainWindow.xaml:
iş mantığı ve sunum endişeleri ayrımı, tutarlı bir uygulama geliştirme deseni kullanarak uygulamanızın kullanıcı arabirimine ve kullanıcı arabiriminden veri ve olayları bağlamanıza olanak tanır.
Projenin dosya yapısı
Kod değişiklikleri yapmadan önce projenin dosya yapısını gözden geçirelim. Bu, Çözüm Gezginibulunur.
İpucu
Çözüm Gezgini gibi özellikleri bulmak için gezinti çubuğunda Ara'ya tıklayın ve Özellik Arama seçeneğini kullanın.
Projenin dosya yapısı şu anda şöyle görünür:
Bu tabloda yukarıdan başlayıp aşağıdan başlayarak dosyalar açıklanmaktadır:
Dosya Adı ve Görsel Referans Numarası
Açıklama
Solution 'Hello World' 1.
Bu,projeleriniz için bir mantıksal kapsayıcı olançözüm dosyasıdır. Projeler genellikle uygulamalardır, ancak sınıf kitaplıklarını da destekleyebilir.
Hello World 2.
Bu, uygulamanızın dosyaları için bir mantıksal kapsayıcıproje dosyasıdır.
Dependencies 3.
Uygulamanız çerçevelere (.NET ve Windows SDKgibi) ve paketlerine (Windows Uygulama SDK'sıgibi) bağlıdır. Uygulamanıza daha gelişmiş işlevler ve üçüncü taraf kitaplıklar ekledikçe, burada ek bağımlılıklar görünür.
Properties 4.
Kural gereği, WinUI 3 projeleri yayımlama profillerini yerleştirir ve yapılandırma dosyalarını bu klasöre başlatır.
PublishProfiles 5.
Yayımlama profilleriniz, uygulamanızın çeşitli platformlardaki yayımlama yapılandırmasını belirtir.
launchSettings.json 6.
Bu dosya, uygulamanızı aracılığıyla çalıştırırken kullanılabilecek dotnet run yapılandırmanızı sağlar.
Assets 7.
Bu klasör uygulamanızın logosunu, resimlerini ve diğer medya varlıklarını içerir.
app.manifest 8.
Bu uygulama bildirim dosyası, Windows'un kullanıcı cihazlarına yüklendiğinde uygulamanızı görüntüleme biçimiyle ilgili yapılandırmayı içerir.
App.xaml 9.
Bu işaretleme dosyası, uygulamanızın bağımlı olduğu paylaşılan ve genel olarak erişilebilir kaynakları belirtir.
App.xaml.cs 10.
Bu arka planda kod dosyası, uygulamanızın iş mantığının giriş noktasını temsil eder. Bu, MainWindowörneğinizin oluşturulmasından ve etkinleştirilmesinden sorumludur.
MainWindow.xaml 11.
Bu işaretleme dosyası, uygulamanızın ana penceresine ilişkin sunu endişelerini içerir.
MainWindow.xaml.cs 12.
Bu arka planda kod dosyası, uygulamanızın ana penceresiyle ilişkili iş mantığı sorunlarını içerir.
Package.appxmanifest 13.
Bu paket bildirim dosyası, uygulamanızın Windows Mağazası'nda nasıl görüneceğini belirleyen yayımcı bilgilerini, logoları, işlemci mimarilerini ve diğer ayrıntıları yapılandırmanıza olanak tanır.
"Merhaba dünya!"
"Bana tıklayın" düğmesi yerine "Merhaba dünya!" ifadesini görüntülemek için MainWindow.xamladresine gidin. bir StackPanel denetiminin XAML işaretlemesini görmeniz gerekir:
Uygulamanızı şimdi çalıştırmaya çalışırsanız, Visual Studio 'The name 'myButton' does not exist in the current context' numarası ile ilgili bir hata verir. Bunun nedeni, sunu katmanını yeni bir denetimle güncelleştirmemiz ancak arka planda kod dosyasımızda eski denetimin iş mantığını güncelleştirmemiş olmamızdır.
MainWindow.xaml.cs gidin ve myButton_Click olay işleyicisini silin. Etkileşimli Click me düğmesini statik Hello world! metinle değiştirdiğimizden bunu yapabiliriz. Ana penceremizin iş mantığı şu şekilde görünmelidir:
C#
publicsealedpartialclassMainWindow : Window
{
publicMainWindow()
{
this.InitializeComponent();
}
// ↓ you can delete this ↓//private void myButton_Click(object sender, RoutedEventArgs e)//{// myButton.Content = "Clicked";//}
}
Menüden Çözümü Derle > Yeniden Derle'yi seçerek veya Ctrl + Shift + B tuşlarına basarak uygulamanızı sıfırlayın. Ardından Visual Studio araç çubuğundaki "Başlat" düğmesine tıklayarak veya F5 tuşuna basarak uygulamanızı yeniden başlatın.
Uygulama güncelleştirilir ve kırmızı bir Hello world!görmeniz gerekir:
Uygulamanızın başlık çubuğunu güncelleştirme
this.Title = "Hello world!"; arka planda kod dosyanıza MainWindow.xaml.cs ekleyin:
C#
publicMainWindow()
{
this.InitializeComponent();
this.Title = "Hello world!"; // <- this is new
}
Uygulamanızı yeniden başlatırsanız, artık hem gövde hem de başlık çubuğunda Hello world! görmeniz gerekir:
// MainWindow.xaml.csusing 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;
namespaceHello_World
{
publicsealedpartialclassMainWindow : Window
{
publicMainWindow()
{
this.InitializeComponent();
this.Title = "Hello world!";
}
}
}
XAML
<!-- App.xaml --><Applicationx: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><XamlControlsResourcesxmlns="using:Microsoft.UI.Xaml.Controls" /><!-- Other merged dictionaries here --></ResourceDictionary.MergedDictionaries><!-- Other app resources here --></ResourceDictionary></Application.Resources></Application>
C#
// App.xaml.csusing 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;
namespaceHello_World
{
publicpartialclassApp : Application
{
publicApp()
{
this.InitializeComponent();
}
protectedoverridevoidOnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
m_window = new MainWindow();
m_window.Activate();
}
private Window m_window;
}
}
Sıkça Sorulan Sorular
S: "Paketlenmiş" ne anlama gelir?
Windows uygulamaları, çeşitli uygulama paketleme biçimleri kullanılarak son kullanıcılara teslim edilebilir. WinUI ve Windows Uygulama SDK'sı ile çalışırken, paketlenmiş uygulamalar uygulamanızı son kullanıcılara uygun yükleme ve güncelleştirmeler sunan bir şekilde paketlemek için MSIX kullanır.
Dağıtım mimarisi ve çerçeveye bağımlı uygulamalar genel bakışı ziyaret ederek daha fazla bilgi edinin.
S: WinUI uygulamaları oluşturmak için VS Code kullanabilir miyim?
Teknik olarak mümkün olsa da, WinUI ve Windows Uygulama SDK'sı ile masaüstü uygulamaları oluşturmak için Visual Studio 2022 kullanmanızı kesinlikle öneririz. Daha fazla bilgi için Windows geliştirici SSS bakın.
S: WinUI uygulamaları oluşturmak için C++ kullanabilir miyim?
Evet! Daha fazla bilgi için bkz. C++/WinRT'ye giriş.
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
Windows developer geri bildirimi
Windows developer, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Windows geliştirme hakkında bilgi edinmek için bu Github depolarını kullanın. Örnek uygulamalar Windows özelliklerini, API kullanım desenlerini ve uçtan uca senaryoları gösterir.