İpinUcu ~ 95 – WPF Program Kapatma Senaryoları (ShutdownMode)

WPF Program Kapatma Senaryoları (ShutdownMode) WPF uygulamalarında pencerelerin kapandıklarında neler yapılacağı, programın hangi hallerde tamamen kapanacağına dair bir özellik . Bunu Application.Shutdown özelliğiyle bunu sağlayabiliyoruz.

Shutdown özelliğine verebileceğimiz üç değer var.

Birincisi OnExplicitShutdown. Bu değeri verdiğimizde pencereler kapansa bile program arka tarafta çalışmaya devam edecektir.

İkincisi OnLastWindowClose.  Bu değeri verdiğimizde ana pencere kapansa bile diğer pencereler kapanmaz. Tek bir açık pencere kalmayana dek kapattığınızda kapanır. Örneğin bir ana pencerenin altında dört tane açık pencere var. Yani beş tane açık pencere var. Bu beş pencerenin beşi de kapanana kadar program kapanmayacaktır. Burada hangi pencerenin açık \ kapalı olduğunun önemi yoktur. Kısacası açık pencereye kalmayana dek kapandığında program sona erer.

Üçüncüsü OnMainWindowClose. Bu değeri verdiğimizde yalnızca ana pencere kapandığında program kapanacaktır.

ShutdownMode özelliğini kullanacağımız yerse App.xaml Buraya StartupUri’nin hemen altına ShutdownMode=”OnMainWindowClose” kodlarını yazarak kullanabiliriz.

C# tarafındaysa:

Application app1= Application.Current;
app1.ShutdownMode = ShutdownMode.OnLastWindowClose;

İlgili MSDN sayfası: http://msdn.microsoft.com/tr-tr/library/system.windows.application.shutdownmode.aspx

Haydi kolay gelsin.

İpinUcu ~ 94 – WPF DevExpress GridControl’ü Excel’e Aktarma

WPF DevExpress GridControl’ü Excel’e Aktarma, aynı PivotGridControl’de olduğu gibi fazlasıyla basit. Aradaki tek fark, GridControl’ü değil, aslında View’ı yazdırıyor olmamız. Bakalım:

Normalde GridControl.ExportToXlsx(“c:\\tablo.xlsx”); diyerek kaydediyor olmamız gerekirdi. Ama DevExpress’in geliştiricileri bu yöntemi View için yazmışlar, yaani:

tableView1.ExportToXlsx(“c:\\grid.xlsx”);

Arka tarafta bu kodu yazdığımızda istediğimizi elde etmiş oluyoruz. Ayrıca DevExpress’in XLSX aktarma seçenekleri de mevcut:

 XlsxExportOptions xlsxopt = new XlsxExportOptions();
            xlsxopt.SheetName = "Mehmet KAPLAN";
            xlsxopt.ShowGridLines = true;
 tableView1.ExportToXlsx("c:\\grid.xlsx",xlsxopt);

Gibi bir eklemeyle de değişiklikler yapabiliriz.

Peki bunun dışında hangi türlere aktarabiliyoruz? csc, html, mht, xls, xlsx, pdf, text, image, rtf türlerinin hepsine aktarabiliyoruz.

Haydi kolay gelsin.

İpinUcu ~ 93 – WPF DevExpress PivotGridControl’ü Excel’e Aktarma

WPF DevExpress PivotGridControl’ü Excel’e Aktarma işi DevExpress sayesinde çook ama çook kolay. Yalnızca kod tarafında yapmamız gereken işlem şu:

pivotGridControl1.ExportDosyaTürü();

Peki başka nelere aktarabiliyoruz?  csc, html, mht, xls, xlsx, pdf, text, image, rtf türlerinin tamamına aktarabiliyoruz. Deneyin, görün. =]

Haydi kolay gelsin.

İpinUcu ~ 92 – WPF DevExpress PivotExcelFieldListControl Kullanımı

WPF DevExpress PivotExcelFieldListControl, DataGrid’lerden alışık olduğumuzda ‘Alan Seçici”nin PivotGrid için uyarlanmış halidir. Böyle düşünebiliriz. PivotGrid’deki tüm alanların yönetimi ve hangi bölümlerde olacağı gibi özelleştirmelerin yapıldığı bir nesnedir. Hemen örneğe geçelim:

Bu arada: WPF DevExpress PivotFieldListControl

 <DockPanel >
   <dxpg:PivotExcelFieldListControl  Owner="{Binding ElementName=pivotGridControl1}" DockPanel.Dock="Left" />
   <dxpg:PivotGridControl Name="pivotGridControl1" DockPanel.Dock="Right">
   <dxpg:PivotGridControl.Fields>
   <dxpg:PivotGridField FieldName="ID" RunningTotal="True" Area="DataArea" />
   <dxpg:PivotGridField FieldName="Ad_Soyad" Area="RowArea" />
   <dxpg:PivotGridField FieldName="Rumuz" Area="RowArea"  />
   </dxpg:PivotGridControl.Fields>
   </dxpg:PivotGridControl>
 </DockPanel>

DockPanel’in içerisine PivotExcelFieldListControl’ü ekledik ve alanları nereden alacağını bilmesi için pivotGridControl1’e bağladık. Ayrıca Id, Ad_Soyad, Rumuz alanlarını da PivotGridControl’ümüze ekleyerek Area’larını belirledik. Bunun sonucunda ekran görüntüsü şöyle olacaktır:

-Ben gerçek kayıtlarla çalıştığım için kayıtların üzerini sildim.-

Evet, görüldüğü gibi sol tarafta Filter Area, Column Area, Row Area, Data Area’nın bulunduğu bir bölüm var. Bu bölüm, PivotGridControl’ün alanlarının yönetilmesini sağlıyor. Hemen üstteki menü de ExcelFieldList’in yerleşim ayarlarının yapılmasını sağlıyor. Altta da Defer Layout Update isimli bir CheckBox var. Bu CheckBox seçili olduğunda Update düğmesine tıklanmadan değişikliklerin yapılmasını engelliyor. Yani bir nevi runtime çalışmasını engelliyor. Bu ne işe yarar? On binlerce kaydı PivotGrid’e yüklediğimizi düşünerek bu sorunu geçiştirebiliriz. =]

Haydi kolay gelsin.

İpinUcu ~ 91 – WPF DevExpress PivotFieldListControl Kullanımı

WPF DevExpress PivotFieldListControl, PivotGridControl’de istenmeyen alanın Pivot’tan çıkarılmasını sağlayan bir nesnedir. Kullanımı da oldukça basit, bakalım:

WPF DevExpress PivotGridControl Kullanımı ve DataBinding adlı yazım için tıklayınız.

 <DockPanel >
       <dxpg:PivotFieldListControl Owner="{Binding ElementName=pivotGridControl1}" DockPanel.Dock="Top"  />
       <dxpg:PivotGridControl Name="pivotGridControl1" DockPanel.Dock="Right">
           <dxpg:PivotGridControl.Fields>
                 <dxpg:PivotGridField FieldName="ID" RunningTotal="True" Area="DataArea" />
                  <dxpg:PivotGridField FieldName="Ad_Soyad" Area="RowArea" />
                  <dxpg:PivotGridField FieldName="Rumuz" Area="RowArea"  />
            </dxpg:PivotGridControl.Fields>
        </dxpg:PivotGridControl>
</DockPanel>

Bir PivotFieldListControl oluşturarak alanları nereden alacağımızı Owner özelliğine göstermiş olduk. PivotGridControl’e de alanlarımızı girdik. Ekran görüntüsüne bakalım:

Yukarıdaki Drag a field here to costumize layout kısmına herhangi bir alanı bıraktığınızda alanın Pivot’tan çıktığını göreceksiniz.

Haydi kolay gelsin.

İpinUcu ~ 90 – WPF DevExpress Penceresi (DXWindow)

WPF DevExpress Penceresi (DXWindow), Windows Form uygulamalarında ve Silverlight’ta olduğu gibi WPF için de bulunuyor. WPF’in varsayılan penceresinden farklı olarak birkaç güzelliği olduğunu söylemek gerekiyor.

Örneğin aynı klasik Windows uygulamalarındaki gibi DevExpress penceresi kullandığınızda, kullandığınız temanın renklerini alabiliyor. Bunun dışında görev çubuğunda çıkan pencere simgesi ile pencerenin sol üst köşesindeki simgeyi birbirinden ayrı olarak tanımlayabiliyorsunuz:

Icon özelliği görev çubuğu ve pencerenin sol üst köşesinde çıkan olan simgeyi temsil ediyor. Eğer SmallIcon özelliğine de değer atarsanız, SmallIcon pencerenin sol üst köşesindeki simgeyi temsil ediyor.

Elbette halihazırda kullandığınız klasik WPF pencerelerini de değiştirebiliyorsunuz. Bunun için öncelikle kod tarafında şu değişikliği yapıyoruz:

    public partial class MainWindow : Window

olan kısmı

    public partial class MainWindow : DXWindow

olarak değiştiriyoruz. XAML kısmına geçip:

<Window x:Class="devxTest.MainWindow"

olan kısmı

<dx:DXWindow x:Class="devxTest.MainWindow"

olarak değiştiriyoruz. Elbette kapanış etiketinde de aynını yapmamız gerekiyor.

DXWindow sınıfı için isim alanına using DevExpress.Xpf.Core; eklemesini, XAML kısmına da xmlns:dx=”http://schemas.devexpress.com/winfx/2008/xaml/core&#8221; yapmamız gerekiyor.

Haydi kolay gelsin.

İpinUcu ~ 89 – WPF DevExpress SplashScreen Kullanımı (DXSplashScreen)

WPF DevExpress SplashScreen, kısaca açıklamak gerekirse ‘yükleniyor ekranı’dır. Daha önce şu yazımda Silverlight için olandan bahsetmiştim:

Silverlight SplashScreen

Aynı şekilde WPF için de tasarımızda sağ tıklayıp Add \ New Item \ WPF \ DxSplashScreen diyerek yeni bir SplashScreen ekleyebiliyoruz. Bu ekleme işleminin ardından DxSplahScreen adlı bir klasör altında Image.png, Logo.png ve SplashScreen.xaml adlı üç dosya ekleniyor. Bu klasördeki logo ve image, yükleniyor ekranımızda kullanılan resimlerin kaynak dosyaları. SplashScreen.xaml’da ise görünecek olan yükleniyor ekranın tasarım ve kod tarafı bulunuyor. Her türlü özelleştirmeye açık bir XAML olduğunu söyleyelim.

Evet, SplashScreen varsayılan olarak geliyor ve yükleniyor ekranı olarak ekranda beliriyor ama biz şekil olsun ister ve hep çıkmasını sağlamak istersek? Bunun için daha önce DevExpress forumlarında sorulmuş ve cevaplanmış bir konu zaten var. O yüzden fazla üstünde durmaya gerek yok. Söz konusu uygulama için aşağıdaki bağlantıdan yararlanabilirsiniz:

DxSplashScreen Örneği

 

%d blogcu bunu beğendi: