24 Mar 2009 Silverlight 3 Beta – 3D Efektleri (Perspective Transforms) Kategori: Silverlight Etiketler: Silverlight 3 BetaSilverlight 1 Yorum Merhaba arkadaşlar, bu makalemizde Silverlight 3 Beta ile gelen 3D efektlerinin Silverlight uygulamalarında nasıl kullanıldığına bakacağız.Silverlight 2’nin en büyük eksiklerinden biri 3D efektlerinin olmamasıydı. Silverlight 3 Beta ile birlikte bu eksiklik de giderildi ve artık Silverlight uygulamalarında 3D efektlerini kullanabiliyoruz. Tabi şunu da özellikle belirtmekte fayda var. Silverlight henüz 3D-Engine desteklemiyor. Yani yaptığımız uygulama gerçek bir 3D uygulaması olmayacaktır. Silverlight 3 Beta UIElementlerine 3D Efektleri uygulayabilmek için her UIElementin ”Projection” isimli bir propertysi var. Eğer bir kontrole 3D efekti uygulamak istiyorsak UIElementin Projection özelliğini kullanmak zorundayız. Örnek kullanımı aşağıdaki gibidir. [XAML] <UIElement.Projection><PlaneProjection Rotation="Deger"></PlaneProjection></UIElement.Projection> UIElementlerin Projection özelliği abstract bir tiptir. PlanProjection da bu tipten kalıtılarak oluşturulmuş bir tiptir. Böylece nesnelerin Projection özelliğine PlaneProjection tipini atayabiliriz. [C#] UIElement.Projection = new PlaneProjection() { Rotation = deger }; İlk olarak PlaneProjection tipinde yer alan bazı özellikleri inceleyelim. PlaneProjection'ın 12 tane özelliği var.RotationXUIElementin dönme merkezinin, X koordinatında döndürülmesini sağlar.<Image Source="sllogo.jpg" Width="150" Height="170"><Image.Projection> <PlaneProjection RotationX="-60"></PlaneProjection> </Image.Projection></Image> RotationY UIElementin dönme merkezinin, Y koordinatında döndürülmesini sağlar.<Image Source="sllogo.jpg" Width="150" Height="170"><Image.Projection> <PlaneProjection RotationY="-60"></PlaneProjection> </Image.Projection></Image> RotationZUIElementin dönme merkezinin, Z koordinatında döndürülmesini sağlar. <Image Source="sllogo.jpg" Width="150" Height="170"><Image.Projection> <PlaneProjection RotationZ="-60"></PlaneProjection> </Image.Projection></Image> CenterOfRotationX, CenterOfRotationY, CenterOfRotationZ özelliklerini kullanarak nesnenin dönme merkezini taşıyabiliriz. Bu özellikler 0 ile 1 arasında bir değer alabilir. 0 En üst nokta 1 ise an alt noktadır. Default değerleri x ve y için 0.5, z için 0’dır. <Image Source="sllogo.jpg" Width="150" Height="170"> <Image.Projection> <PlaneProjection RotationZ="-60" CenterOfRotationX="0.6"></PlaneProjection> </Image.Projection> </Image> LocalOffsetX, X ekseninde nesne ile Plane(3D alanı) arasındaki mesafeyi belirler.LocalOffsetY, Yekseninde nesne ile Plane(3D alanı) arasındaki mesafeyi belirler.LocalOffsetZ, Z ekseninde nesne ile Plane(3D alanı) arasındaki mesafeyi belirler.GlobalOffsetX, X ekseninde nesne ile ekran arasındaki mesafeyi belirler.GlobalOffsetY, Y ekseninde nesne ile ekran arasındaki mesafeyi belirler.GlobalOffsetZ,Z ekseninde nesne ile ekran arasındaki mesafeyi belirler.Yeni bir Silverlight uygulaması oluşturalım ve projemize bir Rectangle, 6 slider ekleyelim. Rectangle nesnesinin Projection özelliğindeki Rotation X,Y Z ve CenterOfRotation X,Y,Z Özelliklerine bağlayacağız. Böylece Silverlight 3 Beta ile gelen bir diğer yenilik olan Kontrollerin birbirine bağlanması konusunu incelemiş olacağız. XAML kodumuz aşağıdaki gibidir. [XAML] <Canvas x:Name="LayoutRoot" Background="White" Width="400" Height="300" >// Rectangle nesnesi oluşturalım<Rectangle x:Name="Kare" Width="100" Height="100" Fill="Red" Canvas.Top="50" Canvas.Left="140"> // Projection özelliğine PlaneProjecytion nesnesi ile 3D efektleri için özellikleri belirleyelim. // Rectangle nesnesinin CenterOfRotation özelliklerini belirledik. Böylece nesnenin dönme merkezi default değerler olarak atandı <Rectangle.Projection> <PlaneProjection x:Name="Kare3d" CenterOfRotationX="0.5" CenterOfRotationY="0.5" CenterOfRotationZ="0"/></Rectangle.Projection></Rectangle>// Kare3d isimli PlaneProjection nesnesinin RotationX özelliğini slider kontrolünün value özelliğine bağlıyoruz. Böylece slider kontrolünün valuesi değiştikçe Nesnenin RotationX özelliğide değişecek.<Slider Minimum="0" Maximum="360" Width="180" Value="{Binding ElementName=Kare3d, Mode=TwoWay, Path=RotationX}" Canvas.Left="20" Canvas.Top="200"/>// Kare3d isimli PlaneProjection nesnesinin RotationY özelliğini slider kontrolünün value özelliğine bağlıyoruz. Böylece slider kontrolünün valuesi değiştikçe Nesnenin RotationY özelliğide değişecek.<Slider Minimum="0" Maximum="360" Width="180" Value="{Binding ElementName=Kare3d, Mode=TwoWay, Path=RotationY}" Canvas.Left="20" Canvas.Top="230" />// Kare3d isimli PlaneProjection nesnesinin RotationZ özelliğini slider kontrolünün value özelliğine bağlıyoruz. Böylece slider kontrolünün valuesi değiştikçe Nesnenin RotationZ özelliğide değişecek.<Slider Minimum="0" Maximum="360" Width="180" Value="{Binding ElementName=Kare3d, Mode=TwoWay, Path=RotationZ}" Canvas.Left="20" Canvas.Top="260"/> // Kare2 nesnesinin CenterOfRotationX özelliğini slider kontrolünün value özelliğine bağlıyoruz. Böylece slider kontrolünün valuesi değiştikçe Nesnenin CenterOfRotationX özelliğide değişecek.<Slider Minimum="0" Maximum="1" Width="180" Value="{Binding ElementName=Kare3d, Mode=TwoWay, Path=CenterOfRotationX}" Canvas.Top="200" Canvas.Left="210"/>// Kare3d isimli PlaneProjection nesnesinin CenterOfRotationY özelliğini slider kontrolünün value özelliğine bağlıyoruz. Böylece slider kontrolünün valuesi değiştikçe Nesnenin CenterOfRotationY özelliğide değişecek.<Slider Minimum="0" Maximum="1" Width="180" Value="{Binding ElementName=Kare3d, Mode=TwoWay, Path=CenterOfRotationY}" Canvas.Top="230" Canvas.Left="210"/>// Kare3d isimli PlaneProjection nesnesinin CenterOfRotationZ özelliğini slider kontrolünün value özelliğine bağlıyoruz. Böylece slider kontrolünün valuesi değiştikçe Nesnenin CenterOfRotationZ özelliğide değişecek.<Slider Minimum="0" Maximum="1" Width="180" Value="{Binding ElementName=Kare3d, Mode=TwoWay, Path=CenterOfRotationZ}" Canvas.Top="260" Canvas.Left="210"/>// Bilglendirme için kullanacağımız TextBlock kontrolleri<TextBlock Canvas.Top="180" Canvas.Left="20" Width="87" Height="16" FontWeight="Bold" Text="Rotation">TextBlock><TextBlock Canvas.Top="180" Canvas.Left="210" Height="16" Width="118" Text="CenterOfRotation" FontWeight="Bold"/><TextBlock Canvas.Top="200" Canvas.Left="4" Height="16" Width="8" Text="X" FontWeight="Bold"/><TextBlock Canvas.Top="230" Canvas.Left="4" Height="16" Width="8" Text="Y" FontWeight="Bold"/><TextBlock Canvas.Top="260" Canvas.Left="4" Height="16" Width="8" Text="Z" FontWeight="Bold"/></Canvas>Uygulamayı test edebiliriz artık. Test etmek için tıklayınızBu makalenin de sonuna geldik başka bir makale de görüşmek üzere. Silverlight ile kalın ;)Sem GÖKSU www.semgoksu.com | www.yazilimgunlugu.com sem.goksu@yazilimgunlugu.com KaynaklarMSDNSilverlight SDK
24 Mar 2009 Silverlight 3 Beta – SaveFileDialog Kullanımı Kategori: Silverlight Etiketler: Silverlight 3 BetaSilverlight 2 Yorum Merhaba arkadaşlar, bu makalemizde Silverlight 3 Beta ile birlikte gelen SaveFileDialog nesnesinin kullanımı inceleyeceğiz.Silverlight 3 Beta ile birlikte gelen SaveFileDialog ile Silverlight uygulamasındaki bir dosyayı istemci kullanıcının makinesine kaydetmemizi sağlar. Hatırlatmak da fayda var, Silverlight 2.0 ile birlikte de OpenFileDialog kontrolü Silverlight kontrol kütüphanesine eklenmişti. Bu kontrolle de istemcinin makinesindeki bir dosyayı Silverlight uygulaması içinde kullanabiliyoruz. Şöyle bir şey yapabiliriz artık, OpenFileDialog ile bir dosyayı alıp üzerinde değişiklik yapıp, SaveFileDialog kontrolü ile de kaydedebiliriz. SaveFileDialog kontrolünün bazı önemli özelliklerini inceleyecek olursak;Filter özelliği ile SaveFileDialog ile kaydedilecek dosyanın uzantısını yada uzantılarını bu özellikle belirleyebiliriFilterIndex özelliği ile filtreler içinde bulunan seçeneklerden hangisinin seçileceğini belirleriz. DefaultExt özelliği ile herhangi bir filter seçmezsek DefaultExt özelliği ile belirttiğimiz uzantıyı alır ShowDialog metodu ile SaveFileDialogu ekranda gösterebiliyoruz. Geriye Boolen bir değer döndürür. Silverlight uygulamasında kullanıcıların Text dosyalarını açıp bu dosyalar üzerinde değişiklik yapıp kaydetmesini sağlayacak bir uygulama geliştirelim. Böylece hem OpenFileDialog hemde SavaFileDialog nesnelerini incelemiş olacağız. Bunun için Silverlight projesi oluşturalım. Projemize aç, kaydet için iki buton ve dosyadaki içeriği görüntülemek içinde bir textbox ekleyelim. [XAML] <UserControl x:Class="SL3BetaSaveFileDialogKontrolu.MainPage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"><Canvas x:Name="LayoutRoot" Background="White"> <Button x:Name="btnAc" Content="Aç" Width="100" Height="30" Canvas.Top="10" Canvas.Left="10"></Button> <Button x:Name="btnKaydet" Content="Kaydet" Width="100" Height="30" Canvas.Left="120" Canvas.Top="10"></Button> <TextBox x:Name="txtIcerik" Text="İçerik" Width="380" Height="240" Canvas.Left="10" Canvas.Top="50"></TextBox></Canvas></UserControl> İlk olarak dosyayı OpenFileDialog nesnesini kullanarak açalım ve textbox kontrolün de gösterelim.[OpenFileDialog] void btnAc_Click(object sender, RoutedEventArgs e) { OpenFileDialog dosyaAc = new OpenFileDialog(); // OpenFileDialog nesnesi oluşturalım. dosyaAc.Multiselect = false; // Çoklu seçime izin vermeyelim. dosyaAc.Filter = "Text Dosyaları(*.txt)|*.txt"; // Açılacak olan dosyanın uzantısı if (dosyaAc.ShowDialog() == true) // Bir dosya seçilmezse yada iptal’e basılırsa hata vermemesi için kontrolümüzü yapalım { string contents = ""; StreamReader reader = new StreamReader(dosyaAc.File.OpenRead(), System.Text.Encoding.UTF8); // OpenFileDialog nesnesi ile açılan dosyayı StreamReader ile okuyalım. while(!reader.EndOfStream) // Okunan dosya sona geldimi { contents = reader.ReadToEnd();// Sonuna kadar oku } txtIcerik.Text = contents; // Okunan dosyanın içeriğini textbox’a ata. reader.Close(); // Okuyucuyla işimiz bitti kapatalım. }} Şimdide kullanıcının dosyayı SaveFileDialog nesnesi kullanarak kaydetmesini sağlayalım. [SaveFileDialog] void btnKaydet_Click(object sender, RoutedEventArgs e) { SaveFileDialog dosyaKaydet = new SaveFileDialog(); //SaveFileDialog nesnesi oluşturalım. dosyaKaydet.Filter = "Text Dosyası(txt)|*.txt"; // Kaydedilecek dosya sadece txt dosya olabilisin. if (dosyaKaydet.ShowDialog() == true) { StreamWriter writer = new StreamWriter(dosyaKaydet.OpenFile());//Seçilen dosyayı StreamWriter ile açalım… writer.Write(txtIcerik.Text);// Seçilen dosyaya içeriği atayalım. writer.Close(); // Yazıcıyı kapatmayı unutmayalım. }} Bir dosya açalım ve dosyayı kaydedelim. Eğer dosya yoksa direk de kaydedebiliriz Dosyayı kaydetmeye çalışalım. Masaüstüne kaydedelim, Şimdi Masaüstüne bakalım, Masaüstüne dosya kaydedilmiş, Dosyanın içine bakalım, Bu makalenin de sonuna geldik başka bir makale de görüşmek üzere. Silverlight ile kalın ;)Sem GÖKSU www.semgoksu.com | www.yazilimgunlugu.com sem.goksu@yazilimgunlugu.com Kaynaklarmsdn.comsilverlight.net
23 Mar 2009 Expression Blend 3 Preview ile Import İşlemleri Kategori: Silverlight Etiketler: Silverlight 3 BetaExpression Blend 1 Yorum Expression 3 Preview ile photoshop ve illustrator dosyalarından dosya importunun nasıl yapıldığına bakacağız.Silverligt 3 betanın çıkmasyıla birlikte Expression Blend de yenilendi ve Expression Blend 3 Preview sürümü ile karşımıza çıktı. Expression Blend'in yeni sürümünde bir çok yeni özellik bizi bekliyor. Bunlardan biri de Photoshop ve Illustrator dosyalarını Expression Blend'e aktarılabilmesidir. Yani photoshop da hazırladığınız bir PSD dosyayı kaydettikten sonra tüm katmanlarıyla birlikte Expression Blend'e import edebiliyoruz. Bu işlemin nasıl yapıldığına bakacak olursak; İlk olarak Photoshop'u açalım ve katmanlar oluşturarak kaydedelim.Şimdi Expression Blend 3 ile yeni bir proje oluşturalım ve File menüsünden Import Adobe Photoshop'a tıklayalım.Photoshop dosyasında (psd) oluşturduğumuz katmanlar karşımıza geldi. Buradan hangi katmanları import etmek istiyorsak seçiyoruz. "Preserve pixel dimensions on import" seçeneğini seçersek katmanların boyutları korunur. Eğer istersek "Merge Layer" ile Katmanları birleştirebiliyoruz.Photoshopda oluşturduğumuz bir dosyayı katmanlarıyla birlikte Expression Blend'e aldıkOluşan XAML koduna bakalım, [XAML] <UserControlxmlns:dc="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm" x:Class="SilverlightHtmlRender.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="350"Height="180"xmlns:template="clr- namespace:SilverlightHtmlRender"> <Gridx:Name="LayoutRoot"Background="White"> <Canvasx:Name="photoshop"Height="180"Width="350"Clip="M0,0L350,0 350,180 0,180z"> <Imagex:Name="Layer_1"Height="200"Width="350"Canvas.Left="0"Canvas.Top="-10"Source="photoshop_Images/Layer 1.png"/> <Imagex:Name="Layer_2"Height="166"Width="150"Canvas.Left="6"Canvas.Top="6"Source="photoshop_Images/Layer 2.png"/> <TextBlockx:Name="SILVERLIGHt_Beta_3_IMport_PHOT"Width="152"Canvas.Left="168"Canvas.Top="17"FontFamily="Tahoma"FontSize="14"FontWeight="Bold"Foreground="#FFFF0101"Text="SILVERLIGHT BETA 3
IMPORT PHOTOSHOP"TextAlignment="Left"TextWrapping="Wrap"/> <Imagex:Name="Layer_3"Height="86"Width="153"Canvas.Left="170"Canvas.Top="64"Source="photoshop_Images/Layer 3.png"/> </Canvas> </Grid></UserControl>Bu makalenin de sonuna geldik başka bir makale de görüşmek üzere. Silverlight ile kalın ;) Sem GÖKSU www.semgoksu.com | www.yazilimgunlugu.com sem.goksu@yazilimgunlugu.com Kaynaklar msdn.com silverlight.net
22 Mar 2009 Silverlight 3 Beta – BasedOn Style Kullanımı Kategori: Silverlight Etiketler: Silverlight 3 BetaSilverlight 1 Yorum Merhaba arkadaşlar, bu makalemizde Silverlight 3 Beta ile birlikte gelen BasedOn Styles özelliğini inceleyeceğiz.Silverlight 3 Beta ile birlikte gelen yeniliklerden biri de BasedOn Styles özelliğidir. BasedOn Style özelliği ile aynı türde kontrollerin benzer özellikleri taşıdığı durumlar da, ortak bir sitil oluşturulup, bu sitilin kontrollere uygulanabilmesini sağlar. Buraya kadar her şey normal aslında ve fark şuradan geliyor. Örneğin elimiz de iki tane Button var. Her iki butonunda FontSize özelliği 14px, arka plan renkleri farklı. Burada şunu yapabiliyoruz. Ortak özellikler için bir style(BasedOn Style), oluşturup, ayırt edici özellikler için her iki kontrole de ayrı ayrı style oluşturuyoruz. Oluşturduğumuz BasedOn style’ı her iki kontrol için oluşturduğumuz style’lara BasedOn özelliğini kullanarak uyguluyoruz. Böylece BasedOn Style'daki bütün özellikler butonlar için oluşturduğumuz sitiller tarafından devralınacak. Silverlight projesi oluşturalın ve konuyu daha detaylı olarak inceleyelim. Projemize 3 button ekleyelim ve butonlar için style'lar oluşturalım. Button'ların ortak özelliği olduğu için de ortak özellikleri uygulayacak bir style oluşturalım. [XAML] <UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="SL3BetaBasedOnStyles.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"><Grid Background="White"><Grid.Resources><!— Ortak özellikler için Base Style, Bu style’ı uygulayan bütün style’lar bu style’ın tüm özelliklerini devralacak. TargetType özelliği ile bu sitilin hangi kontrole uygulanacağını belirtiyoruz. --><Style x:Key="BasedStyle" TargetType="Control"><!-- Setter ile bu sitili uygulayacak kontrol için özellik(property) ve o özelliğe atanacak değeri(Value) belirtiyoruz.--><Setter Property="FontSize" Value="14"></Setter><Setter Property="Width" Value="200"></Setter><Setter Property="Margin" Value="5"></Setter></Style><!-- 1. Button için Style, BasedOn özelliği ile belirtilen style’ın tüm özellikleri devralınır. BasedOn style daki tüm özellikleri burada uygulamışız gibi uygulanır--><Style x:Key="Button1Style" TargetType="Control" BasedOn="{StaticResource BasedStyle}"><Setter Property="Background" Value="Blue"></Setter><Setter Property="Foreground" Value="Red"></Setter></Style><!-- 2. Button için Style --><Style x:Key="Button2Style" TargetType="Control"BasedOn="{StaticResource BasedStyle}"><Setter Property="Background" Value="Red"></Setter><Setter Property="Foreground" Value="Navy"></Setter></Style> </Grid.Resources><StackPanel><!— BasedStyle uygulanan button --><Button Style="{StaticResource BasedStyle}" Content="Based Button"></Button><!— Button1Style’i uygulanan button --><Button Style="{StaticResource Button1Style}" Content="Button 1"></Button><!— Button2Style’i uygulanan button --><Button Style="{StaticResource Button2Style}" Content="Button 2"></Button></StackPanel></Grid></UserControl> Uygulamayı çalıştıralım ve sonucu görelim. Button için oluşturduğumuz based style’ı, hatta button’lar için oluşturduğumuz style’ları diğer style’lara uygulayabiliriz. Uygulamamıza bir TextBox ekleyelim ve onun için de bir style yazalım. [XAML] <!-- TextBox için Style oluşturduk ve Button2 için oluşturduğumuz Button2Style’ini uyguladık. TargetType olarak TextBox değerini atadık. Bu style artık sadece ve sadece TextBox kontrolüne uygulanabilecek. --><Style x:Key="TextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource Button2Style}"><Setter Property="TextAlignment" Value="Center"></Setter><Setter Property="FontStyle" Value="Italic"></Setter><Setter Property="FontWeight" Value="Bold"></Setter> </Style><Button Style="{StaticResourceBasedStyle}"Content="Based Button"></Button><Button Style="{StaticResourceButton1Style}"Content="Button 1"></Button><Button Style="{StaticResourceButton2Style}"Content="Button 2"></Button><TextBox Style="{StaticResource TextBoxStyle}" Text="TextBox"></TextBox> Projemizi tekrar çalıştıralım, TextBox için oluşturduğumuz style’daki özellikler TextBox’a uygulanmış. Button2Style’nı BasedOn style yaptığımız için onun özellikler de uygulanmış. TextBox için oluşturduğumuz style’da TargetType özelliğini TextBox yaptığımız için artık bu style’ı sadece TextBox kontrolüne ve TextBox için oluşturacağımız diğer style’lara uygulayabiliriz. Bu makalenin de sonuna geldik başka bir makale de görüşmek üzere. Silverlight ile kalın ;) Sem GÖKSU www.semgoksu.com | www.yazilimgunlugu.com sem.goksu@yazilimgunlugu.com Kaynaklar msdn.com silverlight.net
21 Mar 2009 Silverlight 3 Beta – Silverlight Uygulamalarının Browser Dışına Alınması Kategori: Silverlight Etiketler: Silverlight 3 BetaSilverlight 0 Yorum Merhaba arkadaşlar, bu makalemizde Silverlight 3 Beta ile birlikte gelen bir diğer yenilik olan Silverlight uygulamalarının browser dışına alınmasına(out of browser) bakacağız.Silverlight 3 Beta ile çok güzel özelliklerin geldiğini söylemiştik. Fark yaratacak bir yenilikte Browser da çalışan Silverlight uygulamalarının offline ortama alınabilmesi. Evet yanlış duymadınız browser üzerinde çalışan bir Silverlight uygulamasının Masaüstüne ya da Start Menu’ye alıp browser ile hiçbir bağlantısı olmadan çalıştırabiliyoruz. Bu özelliği Silverlight uygulamamıza kazandırmak için yapmamız gereken şey çok basit. Silverlight uygulamasının bulunduğu projesinin Properties klasörü içinde yer alan AppManifest.xml dosyasını düzenlememiz yeterli olacaktır. [XML] <Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Deployment.Parts /><Deployment.ApplicationIdentity><ApplicationIdentity ShortName="KisayolAdi" Title="Silverlight uygulamasının Form Başlığı"><ApplicationIdentity.Blurb>Uygulama İle ilgili açıklama</ApplicationIdentity.Blurb><!—Uygulamada göstereceğimiz iconları yazıyoruz.--><ApplicationIdentity.Icons><Icon Size="16x16">1.png</Icon><Icon Size="32x32">2.png</Icon><Icon Size="64x64">3.png</Icon><Icon Size="128x128">4.png</Icon></ApplicationIdentity.Icons></ApplicationIdentity></Deployment.ApplicationIdentity></Deployment> Silverlight uygulaması üzerinde sağ tıklayarak “Intall KisayolAdi onto this computer” seçeneğini tıklayalım. Eğer bu işlemi kod ile yaptırmak istiyorsak ilgili yere App.Current.Detach(); yazmamız gerekiyor.Start Menuyü seçelim ve Start Menüyü açalım. Uygulamamız start menüye eklenmiş durumda. Şimdi Silverlight uygulamamızı çalıştıralım.Browser’dan bağımsız çalışan Silverlight uygulamamız hazır !Bu makalenin de sonuna geldik başka bir makale de görüşmek üzere. Silverlight ile kalın ;)Sem GÖKSU www.semgoksu.com | www.yazilimgunlugu.com sem.goksu@yazilimgunlugu.com Kaynaklarmsdn.comsilverlight.net