50% Off/-

50% Off/-

Php

50% Off/-

50% Off/-

Web

50% Off/-

50% Off/-

Son Eklenen Makaleler

WPF'in list controlleri tarafından sağlanan en önemli özellik UI virtualization'dır. Bu teknik büyük ölçekli listelerin tamamının memory'e yüklenmesi yerine sadece ekranda gösterilen item sayısı kadar memory'e yüklenmesini sağlar. Örneğin, 50.000 item sayısına sahip bir listeyi memory'e yüklemek performans kayıplarına sebep olacaktır. Bundan dolayı WPF bu tekniği geliştirmiştir. Bu teknikle ekranda gösterilen item sayısı 30 ise, sadece 30 tane item yaratılıp memory'de tutulması sağlanır. Virtualization olmasaydı 50.000 tane item yaratılıp memory'e yükl...Devamını Oku
WPF ile basit bir veritabanı uygulaması yapmak için şunlar gereklidir: 1. Veritabanına erişecek bir sınıf 2. Veritabanındaki tabloyu temsil edecek bir sınıf 3. Bir tane XAML sayfası Örnek: Veritabanına erişen StoreDb isimli bir sınıf public class StoreDB { private string connectionString = Properties.Settings.Default.StoreDatabase; public Product GetProduct(int ID) { SqlConnection con = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("GetProductByID", con); cmd.CommandType = CommandType.S...Devamını Oku
En basit tanımıyla bir WPF elementinin property'sini set etmek için başka bir WPF elementi ile bağlantı kurmasıdır. Fakat her property'ler bunu sağlayamaz. Bağlantının sağlanabilmesi için ilgili property dependency property olmak zorundadır. Örnek: Slider Elementi İle TextBlock Elementlerini Birbirine Bağlamak <Slider Name = "sliderFontSize" Margin="3" Minimum="1" Maximum="40" Value="10" TickFrequency="1" TickPlacement="TopLeft"> </Slider> <TextBlock Margin="10" Text="Simple Text" Name="lblSampleText" FontSize="{B...Devamını Oku
Startup: Application.Run() metodu çalıştırıldığı zaman ana pencere henüz ekranda gözükmeden önce meydana gelir. Bu eventi komut satırı argümanlarını StartupEventArgs.Args property'i kullanarak almak için kullanabiliriz. Exit: Application.Run() metodunun dönüşünden hemen önce meydana gelir. Shutdown işlemini bu event içinde engelleyemeyiz. Integer değerdeki Exit kodunu bu eventi kullanarak set edebiliriz. SessionEnding: Windows işletim sistemini kullanan kullanıcı bilgisayarı kapattığı zaman veya log-off olduğu zaman meydana gelir. Bu eventi kullanara...Devamını Oku
WPF'te uygulama başladığı zaman Application nesnesi yaratılır. Uygulama çalıştığı sürece, çeşitli event'lar meydana gelir. Son olarak, bu nesne destroy edilir ve uygulama kapanmış olur. Application Nesnesi Yaratmak Application nesnesi yaratmanın en temel yolu Main() metodu içerisinde manuel olarak yaratmaktır: using System; using System.Windows; public class Startup { [STAThread()] static void Main() { // Application nesnesi yaratiliyor Application app = new Application(); // Ana pencere yaratiliyor. Bu pencere...Devamını Oku
WPF uygulamalarını çalıştırdığımızda ilk ekran hemen yüklenmez. Uygulamanın kullandığı kaynaklara göre açılış işlemi uzun sürebilir. Böyle durumda splash screen dediğimiz bir pencere göstererek kullanıcıyı uygulamanın yüklendiğini bildirebiliriz. Splash screen eklemek için şu adımlar yapılmalıdır:          1. Projeye bir resim eklenir. (Türü genelde .bmp, .png, .jpg vs)          2. Solution Explorer'da eklenen dosya seçilir.        &nb...Devamını Oku
Komut satırından bilgi almak için Application sınıfın Startup event'ini kullanmak gerekir. Startup eventini kullandığımızda StartupUri kullanamadığımız için bu event içinde ana pencereyi belirtmeliyiz. Örnek: using System; using System.Collections.Generic; using System.Windows; namespace WpfTutorialSamples { public partial class App : Application { private void Application_Startup(object sender, StartupEventArgs e) { MainWindow wnd = new MainWindow(); // MainWindow sınıfında tanımlanan OpenFil...Devamını Oku
Application nesnesine erişmek için Application.Current statik property kullanılır. Bu property ile örneğin uygulamamızın ana penceresine erişebiliriz: Window main = Application.Current.MainWindow; MessageBox.Show("The main window is " + main.Title); Ana pencerenin metodlarına, property'lerine erişmek için type-casting yapmalıyız: MainWindow main = (MainWindow)Application.Current.MainWindow; main.DoSomething(); Aşağıdaki kodu kullanarak o an açık olan tüm pencerelere erişebiliriz: foreach (Window window in Application.Current.Windows) { Mess...Devamını Oku
Yapmış olduğumuz WPF uygulamasının birden fazla kopyasını aynı anda çalıştırabiliriz. Fakat bazı durumlarda birden fazla çalışması doğru olmaz. Örneğin document tabanlı uygulamanın tek kopyasının çalışması daha mantıklı olacaktır. Buna en somut örnek Office Word uygulamasıdır. Ne kadar dosya açarsak açalım tek bir tane Office Word uygulaması çalışır. Bu tarz uygulamalara single-instance uygulamalar denir. WPF'te single-instance uygulama yapmak biraz karmaşıktır. Bundan dolayı yapılması gereken işlem adımlarını sırasıyla inceleyelim. Visual Basic ve W...Devamını Oku
WPF uygulamasında assembly resources kullanımı diğer .NET uygulamalarındaki gibidir. Temel konsept olarak projeye bir dosya eklediğimiz zaman, uygulama derlendiğinde bu dosya EXE veya DLL dosyasına gömülür. Uygulamamıza bir dosya eklediğimiz zaman dosyanın, Visual Studio'da Properties penceresinde bulunan Build Action property'isini Resource yapmak gerekmektedir. Aynı şekilde daha iyi organizasyon yapmak için bir klasör eklediğimizde dosyaya yaptığımız işlemi bu klasöre de yapabiliriz. Not: WPF, Visual Studio'nun Properties penceresinde çıkan Resou...Devamını Oku
System.Windows.Control sınıfından türüyen sınıflar Control sınıflarıdır. WPF uygulamalarında görsel arayüz elementleri kullanılır. Bu elementlerden bazıları ise control olarak adlandırılır. Bir control genelde user-interactive element olarak tanımlanır. Yani bir element mouse veya klavye aracılığı ile etkileşimde bulunuyorsa bu element control elementidir. Örnek olarak text box'lar ve buttonlar birer controldür. Controller aşağıdaki şekilde gruplandırılır:               Content controls...Devamını Oku
Tek bir nested element içeren control'dür. Bu özelliği ile birden çok nested element içeren layout'lardan ayrılır. Tüm WPF layout container'lar Panel sınıfından türediği için birden çok alt element içerebilirler. Control'ler ise soyut ContentControl sınıfından türerler. Aşağıdaki figür sınıf hiyerarşisini göstermektedir: Content Property Control sınıfı sadece tek bir alt elemente sahip olduğu için, Content property değeri bu elementi temsil eder. Panel sınıfı birden çok alt element barındırabildiği için bu elementleri bir Collection nesnesinde tut...Devamını Oku
WPF iki tür date control içerir: Calendar ve DatePicker. İki control'de kullanıcının tarih seçmesini sağlar. DatePicker daha az yer kaplar ve drop-down ok sağlar. Kullanıcı bu oka tıkladığı zaman tarihi seçmek için bir popup çıkar. DatePicker control'ünün SelectedDateChanged eventi ile veya Calendar control'ünün SelectedDatesChanged eventini kullanarak birden çok tarih seçebiliriz veya bazı tarihlerin seçilmesini engelleyebiliriz. Örnek: <Calendar SelectedDatesChanged="Calendar_SelectedDatesChanged" SelectionMode="MultipleRange"></Calendar>...Devamını Oku
Genelde online yardım ve web sayfalarında sıklıkla kullanılan bir teknik vardır. Bu teknik kullanıcının ana başlıkları görmesini sağlayarak aradığı bilgiyi rahatça bulmasını sağlar. Eğer kullanıcı ilgili başlıkla ilgili detaylı bilgi görmek isterse o başlığa tıklar ve genelde başlığın altında o konu ile ilgili detaylı bilgilere ulaşır. Bu sayede sadece ilgili başlık ile ilgili detaylı bilgiye ulaşmış olur. WPF'te bu tekniğin kullanılabilmesi için Expander control'ü eklenmiştir. Örnek: <StackPanel> <Expander Margin="5" Padding="5" Header=...Devamını Oku
TabControl control içerisindeki bir sayfayı temsil eder. TabItem sınıfının en önemli özelliği TabControl içerisinde gösterilip gösterilmediğini belirlemek için kullanılan IsSelected özelliğidir. Örnek: <TabControl Margin="5"> <TabItem> <TabItem.Header> <StackPanel> <TextBlock Margin="3" >Image and Text Tab Title</TextBlock> <Image Source="happyface.jpg" Stretch="None" /> </StackPanel> </TabItem.Header> <StackPanel Margin="3">...Devamını Oku

© 2019 Tüm Hakları Saklıdır. Codesenior.COM