• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 8/2/2020 11:38:31 PM'Basit' Yazılım Dili
  • 6/25/2020 3:18:13 PMderleme hatası
  • 12/11/2017 4:49:15 PMWindows Hizmeti Hk.
  • 4/23/2016 12:55:33 AMC programlama 2 oyun

Popüler Sorular

  • 5/27/2012 5:49:50 AMAsp.Net ile Date time alana veri ekleyemiiyorum ?
  • 4/2/2012 12:45:18 AM.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 5/12/2012 8:44:49 AMAcil Yardım
  • 5/27/2012 1:46:51 PMveri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LibreOffice
  • LINQ
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

Windows 8 MessageDialog

Windows 8 Store Uygulama Gelistirme | Detaylariyla MessageDialog Kullanimi

07.02.2013

Yazar: Onur Tırpan (Google+)

Kategori: Windows 8

3863

Bildiginiz uzere veya ogreneceginiz uzere, Klasik WinForm, Silverlight, Windows Phone gibi dillerde olanin aksine MessageBox Windows 8 ortaminda hayatimizdan cikmis, yerini kullanim ve gorunum farkliligi olan bir baska ozellige birakmis durumda, MessageDialog.

Oncelikle fark nedir ve bu sinif neden degistirilmistir buna deginmek istiyorum. Fark olarak, gorsel olarak karsimiza Windows 8 Modern stilini yansitan bir sonuc cikiyor. Kullanim olarak ise, klasik .Show(“Icerik”, “Baslik”, ButonOzelligi) gibi bir kullanim degil, biraz daha dallanip budaklanmis bir sonuc goruyor olacagiz. Neden degistirildigini aslinda bilmiyorum fakat, gerekli gorsellik ve Windows 8 kod yapisina uygun olmasi icin gerekli bir degisiklik olmasaydi 3-4 farkli ortamdaki MessageBox’i boylesine degisiklige ugratmazlardi kanimca :)

Gozunuzu korkutmadan (ki korkacak bisey zaten yoktu ya neyse) biraz anlatima giriyorum. Oncelikle bir MessageDialog tanimlamak icin ilk once bir degisken yaratmaliyiz, bunu da soyle yapiyoruz:

var Mesaj = new MessageDialog("Mesaj kutusu icerigi", "Mesaj Kutusu Basligi");

veya

MessageDialog Mesaj = new MessageDialog("Mesaj kutusu icerigi", "Mesaj Kutusu Basligi");

Gordugunuz uzere yukaridaki iki kod da ayni gorevi goruyor. Ancak bu kodu yazmamiz, karsimiza bir MessageDialog cikartmiyor, sadece bu degiskeni bizim icin yaratiyor(!) Yani henuz yaratmis olmamiz gosteriyor oldugumuz anlamina gelmiyor, gostermek icin de bir kod kullanmaktayiz, bu kodumuz ise Windows 8 ile basimizin taci olan Async yapida bir kod. Bu kod da soyle oluyor:

Mesaj.ShowAsync();

Evet, artik yarattigimiz Mesaj degiskenini ust kisimdaki kodumuz ile kullaniciya gosterdik ve kullanici guzel tasarima sahip bir mesaj kutusuyla karsilasti. Peki, MessageBox ile aradaki fark? Benim gozume ilk carpan, MessageBox uygulamalarimizi kilitlerken (ornegin silverlight bir uygulamada arkada bir animasyon veya islem varsa MessageBox bunlari kilitliyordu ekrandan gidene kadar) MessageDialog uygulamamizi kilitlemiyor, yani Async sekilde geliyor ve kendi disinda kimseyi rahatsiz etmiyor.

Detayli kullanima girecek olursak, size guzel bir ornek hazirladim. Her yonuyle kullanmayi denedim MessageDialog’u.

Klasik MessageDialog kullanimi

 

MessageDialog Mesaj = new MessageDialog("Mesaj kutusu icerigi", "Mesaj Kutusu Basligi");
Mesaj.ShowAsync();

Gordugunuz gibi yukaridaki kodumuz ile basit bir mesaj kutusu yaratip gosteriyoruz.

Screenshot_14

Soru Sorma Amacli MessageDialog

 

MessageDialog Mesaj = new MessageDialog("Mesaj kutusu icerigi", "Mesaj Kutusu Basligi");

Mesaj.Commands.Add(new UICommand("Uygula", (command) =>
{
    txtCevap.Text = "Verilen Cevap: Uygula";
}));
Mesaj.Commands.Add(new UICommand("Tamam", (command) =>
{
    txtCevap.Text = "Verilen Cevap: Tamam";
}));
Mesaj.Commands.Add(new UICommand("Iptal", (command) =>
{
    txtCevap.Text = "Verilen Cevap: Iptal";
}));

Mesaj.DefaultCommandIndex = 0;
Mesaj.ShowAsync();

Bu kodumuz da bize 3 ihtimalli bir MessageDialog gosteriyor, buna ek olarak Default secenek olarak (ornegin enter’a basilirsa) sifirinci secenegi atiyor. Daha sonra da cevabi aldiktan sonra bu cevabi txtCevap objesinin Text ozelligine bu veriyi aktariyor.

Screenshot_15

Soru Sorma Amacli MessageDialog 2

 

var Mesaj = new MessageDialog("Mesaj kutusu icerigi", "Mesaj Kutusu Basligi");

Mesaj.Commands.Add(new UICommand("Uygula", null, 0));
Mesaj.Commands.Add(new UICommand("Tamam", null, 1));
Mesaj.Commands.Add(new UICommand("Iptal", null, 2));

Mesaj.DefaultCommandIndex = 0;

var Secilen = await Mesaj.ShowAsync();

txtCevap2.Text = "Verilen Cevap: " + Secilen.Label.ToString();

Bu kodumuz aslinda bir onceki soru sorma diyalogundan farkli bir islem yapmiyor ancak kod yapisi biraz daha farkli. Bunun sebebi ise varolan komut ekleme biciminin bir farkli kullaniminin daha mumkun olmasi. Burada dikkat etmeniz gereken, yukaridaki kodu cagirdiginiz fonksiyon mutlaka async olmali. (ornegin, bir butondan cagiracaksaniz butonun

private void Button_Click(object sender, RoutedEventArgs e)

seklindeki yapisina async komutunu

private async void Button_Click(object sender, RoutedEventArgs e)

seklinde ekleyerek degistirmelisiniz. Bunu yapmazsaniz await komutu calismayacak, bunun akabinde de Secilen.Label komutu kullanilamaz olacaktir.

Screenshot_15

Gordugumuz uzere, MessageDialog cok guzel bir kullanim imkani sunmakta. Hatta, stillerle icli disliysaniz MessageDialog’da gosterilen komutlarin renklerini bile degistirebiliyorsunuz, hatta MSDN’in ornegini inceledim, MessageDialog kullanarak neredeyse her turlu input almaniz mumkun olabiliyor! Bana cok karisik geldigi icin cok fazla incelemedim, zira yukarida size aktardigim 20 satirlik C# kodunu XAML ve C# dahil olmak uzere 300-400 satirda yapmislar, kendimizi cok yormayalim :)

Screenshot_16

Screenshot_18

Ornek kod’u MessageDialogDetayli linkine tiklayarak indirebilirsiniz, anlattiklarima ek olarak bir basit ozellestirme yaptigim bir kod da var ornekte.

Yeni makalelerde gorusmek uzere, tesekkurler.

Yazar Hakkında

Onur Tırpan

Onur Tırpan

onurtirpan.com

Microsoft MEA DPE bölümünde Uzun Dönem Stajyer olarak çalışıyorum, 2013 yılında Nokia Developer Champion ünvanına layık görüldüm ve geçmişte 3 yıl Microsoft Student Partner olarak görev yaptım ve görevin son 2 yılını Lider olarak sürdürdüm. C#, PHP dillerini bilmekte; MySQL, MSSQL veritabanlarıyla ilgilenmekte ve Silverlight, Windows Phone ve Windows 8 platformları için uygulama geliştirmekteyim. 14 Windows Phone, 11 Windows 8 uygulaması geliştirdim ve bu uygulamalar toplamda 950,000'den fazla download edildiler. Galatasaray taraftarıyım.

Sosyal Medya

ORANLAR

  • 3863izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Merhaba, ellerinize sağlık çok yardımcı ol...
  • Merhaba Bu uygulama örneğinden ASP.net ...
  • Hocam Link başka sayfaya yönlendiriyor.

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 123823
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 70897
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 51538
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ