Ana içeriğe atla

WPF - CheckBox ile Form Elementlerinin Görünürlüğünün Değiştirilmesi

Windows Presentation Foundation (WPF) ile uygulama geliştirirken karşılaştığımız farklılıklara ne tür çözümler getirebileceğimizi incelemeye devam ediyoruz.

Form üzerine yerleştirmiş olduğumuz kontrollerden bazılarını checkbox yardımı ile görünürlüğünü değiştirmek isteyebiliriz. Bu işlem sonucunda örneğin form üzerinde bir checkbox bir tane de textbox var. CheckBox 'ın seçili durumunu değiştirdiğim durumda textbox 'ın form üzerinden kaybolmasını istiyorum. Peki, bahsettiğim bu işlemi Windows Form 2.0 ile nasıl yapabiliyordum.

textbox1.Visible = checkBox1.Checked;

Yukarıda görmüş olduğunuz ufak kod parçası yazıldığında işlem kolay bir şekilde gerçekleşiyor. Peki, bu işlem WPF üzerinde nasıl yapılabiliyor. Windows Forma göre biraz daha zor. Nasıl yapabilirizi inceleyelim.

WPF uygulaması oluşturuyor ve sonrasında oluşturulan projeye sınıf ekliyoruz ve aşağıdaki kodları ekliyoruz. Bu arada WPF ile kullanabileceğimiz çok güzel bir enum bulunmaktadır. Form elementlerinin Visibility özelilkleri enum olarak tanımlanmış ve Visible, Collapsed ve Hidden değerleri atanmıştır. Bizde kodumuzda bu özelliklerden yararlanacağız.

Converter.cs
using System;
using System.Windows.Data;
using System.Windows;

namespace ShowHide.Convert
{
    class Converter:IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter,                 System.Globalization.CultureInfo culture)
        {
            Visibility vb = Visibility.Visible;
            try
            {
                var x = bool.Parse(value.ToString());
                if (x)
                    vb = Visibility.Visible;
                else
                    vb = Visibility.Collapsed;
            }
            catch (Exception)
            {}
            return vb;
        }

        public object ConvertBack(object value, Type targetType, object parameter,         System.Globalization.CultureInfo culture)
        {
            return value;
        }
    }
}

Sıra geldi XAML kod üzerinde yapacağımız işlemlere, ekranın üzerine bir tane textbox ve checkbox ekliyoruz. Sonrasında ise oluşturmuş olduğumuz sınıfı xaml:namespace olarak xaml kod tarafında gösteriyoruz.

Window1.xaml
<Window x:Class="ShowHide.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300"
    xmlns:converter="clr-namespace:ShowHide.Convert" >
    <StackPanel Orientation="Vertical">
        <StackPanel.Resources>
            <converter:Converter x:Key="boolToVis"/>
        </StackPanel.Resources>
        <CheckBox Content="Tikla textbox kaybolsun" Name="checkGosterTextBox" />
        <TextBox Text="checkbox a tikladiğinda kaybolur" Visibility="{Binding Path=IsChecked,             ElementName=checkGosterTextBox, Converter={StaticResource boolToVis}}"/>
    </StackPanel>
</Window>

XAML kod da DataBinding ile oluşturulan sınıfı isim alanı olarak ekliyoruz. Sonrasında da Visibility özelliklerini buradan almasına olanak tanıyoruz.

Bu işlemler sonrasında form elementlerini istediğimiz şekilde görünebilirliği ile oynayabilyoruz. Windows Form 2.0 ile hazırlamış olduğumuz projelere oranla biraz daha zor görünse de kendi sınıfımızı oluşturduktan sonra çok rahat bir şekilde kullanabilir duruma geliyoruz.

Umarım yararlı olabilmiştir.

Turhal Temizer

info@turhaltemizer.com

Yorumlar

Bu blogdaki popüler yayınlar

SharePoint 2010 - Content Query for Blog Posts

I hope this post will help many of you feel comfortable with using the Content Query Web Part. In this post I will walk you through the process of creating a content query web part and configuring it to show custom field types. I will also give details on how to use XSLT to stylize and format the data being pulled. I will be using the following scenario as an example. Say that you had a site collection with a top level publishing site. This publishing site would display a the most recent blog posts from all blog sites within its own site collection. To solve this problem we will use a Content Query Web Part and a customized ItemStyle.xsl using XSLT. Please note that the “SharePoint Server Publishing Infrastructure” needs to be enabled at the site collection to display the content query web part. Step 1: Add a Content Query Web Part to Page Navigate to the site that you want the blog posts to show up and click on edit page. Under Editing Tools in the Ribb

.Net 3.5 SP1 – Full Install Packages (Tam Kurulum)

.Net Framework 3.5 SP1 ‘i bilgisayarınıza kurmak istediğinizde normal şartlar altında Microsoft ‘un sitesinde 2.7 mb ‘lik bir dosya indirir ve kurulum işlemlerinizi bu dosya üzerinden yaparsınız. Ancak bu indirmiş oluğunuz dosya yaklaşık 220 mb ‘lik veriyi internetten indirerek kurulum yapmaktadır. İnternet çıkışına izin verilmeyen kurumlar ve kuruluşlar için bu durum bir sıkıntı oluşturmaktadır. Bu sebepten ötürü aşağıdaki link yardımı ile tam yükleme paketini indirdikten sonra hiç internet ihtiyacınız olmadan .Net 3.5 SP1 ‘i kurabilmeniz mümkün olacaktır. Link

Microsoft .Net Framework 3.0 & 3.5 Full Download

.Net ile yazılım geliştiricilerin özelliklede Framework 3.x ile geliştirenlerin başlıca sorunu kurulum dosyası hazırladıklarında .Net Framework ‘ü kurmak için internete bağlanmalarıdır. Çünkü kurulum dosyaları 2-3 MB arasıdır. Yavaş internet kullanıcılarında ve kurumsal şirketlerde projelerin çok ama çok geç kurulmasına sebep olmaktadır. Bu sebepten ötürü sizlere .Net 3.x Framework ‘lerin tam kurulabilir paketlerinin linklerini sizlere sunuyorum. Umarım yararlı olur. Microsoft .NET Framework 3.5 Setup 32-bit version (Boyut(Size): ~200MB Microsoft .NET Framework 3.0 Setup 32-bit Version (Boyut(Size): ~50MB) 64-bit Version (Boyut(Size): ~90MB) Herkese iyi çalışmalar, kolay kurumlar diliyorum. :)