Project365 Mart Ayı Fotoğrafları

Çarşamba, 31 Mart 2010 16:14 by ikivanc

Püf Noktası #90 - Silverlight 4 OOB No Border

Salı, 30 Mart 2010 11:12 by ikivanc
Silverlight 4 ile beraber gelen özelliklerden bir yenisi ise masaüstü desteğinin, pek çok özellik ile beraber gelmesi.

Out-Of-Browser (OOB) modu ile silverlight uygulamalarımızı masaüstü uygulamaymış gibi kurup, çalıştırabiliyorduk. Bu uygulamaların dışında bulunan çerçeveler, standart bir şekilde gelmekteydi. Silverlight 4 ile bu çerçeveleri yani border'ları kaldırabiliyor ve modifiye edebiliyoruz.

Bu Border'ı kaldırmak için Visual Studio içerisinde Silverlight projesine sağ tıklayarak properties'i seçelim ve buradan OOB ayarlarından;


seçerek border'ları kaldırmış olduk.

bu uygulamanın yüklenmesinde standart yükleme ekranı yerine uyarı şeklinde yükleme mesajı gelecektir. Bunu da seçtikten sonra masaüstü uygulamamız aşağıdaki gibi görünecektir.


Bu sürecin kabulünden sonra uygulamamız aşağıdaki gibi görünecektir.


Kolay gelsin.

Püf Noktası #89 - Silverlight 4 OOB Trusted Mode

Salı, 30 Mart 2010 11:02 by ikivanc
Silverlight 4 ile beraber gelen özelliklerden bir yenisi ise masaüstü desteğinin, pek çok özellik ile beraber gelmesi.

Bu yeniliklerden birisi de OOB (Out-Of-Browser) modunda, full trust ile bilgisayarın tüm kaynaklarına ve donanımına erişim izninin verilmesi.

Bu trusted mode'a geçiş için Visual Studio içerisinde Silverlight projesine sağ tıklayarak properties'i seçelim ve buradan OOB ayarlarından;


"Require elevated trust when running outside the browser" seçeneğini seçiyoruz. Daha sonra da uygulama çalıştırıyoruz.

Bu erişim için öncelikle uygulamayı normal yükleme uyarısından farklı bir güvenlik uyarısi ile masaüstüne yüklemenizi isteyecek.

 
Uygulama bu şekilde yüklendikten sonra bilgisayarın doğrudan diskine erişme ve bilgisayar donanımına erişme hakkı verir. Güvenlik konusunda bu mod çok dikkat edilmesi gereken bir ayardır.

Kolay gelsin.

Püf Noktası #88 - Silverlight 4 WebBrowserBrush

Pazartesi, 29 Mart 2010 13:46 by ikivanc
Bir önceki püf noktalarımızda da gördüğümüz gibi HTML kodlar silverlight içerisine nasıl gömülür onu gördük.

Bu gömme işleminde bu webbrowser alanına sağ tıkladığımız zaman silverlight olarak değil gömülen html koda ait normal browser menüsü gelmekte.

Bunu engellemek için de WebBrowserBrush özelliğini kullanabiliriz. Dikkat etmeniz gereken şey ise beta sürümünde bu özelliğin isminin HTMLBrush olması, RC ile beraber WebBrowserBrush olarak isimi değiştirildi.

Şimdi uygulamamızda öncelikle WebBrowser bileşenimizin içeriğini yükleyelim. Daha sonra da bir rectangle nesnesinin içerisini bu webbrowser içeriği ile dolduralım.

Önceki 2 püf noktasında bahsettiklerimizin haricinde uygulamamızın sadece webbrowserbrush için gerekli olan XAML kodu aşağıdaki gibi olacaktır
 
<WebBrowser x:Name="HTMLbrowser" Margin="755,65,0,0" Height="579" Width="547"/>
 
<Rectangle Height="581" Name="HTML_rectangle" Stroke="Black" 
             StrokeThickness="1" VerticalAlignment="Top" Width="547" >               
  <Rectangle.Fill>
    <WebBrowserBrush x:Name="WebBrush" SourceName="HTMLbrowser"/>
  </Rectangle.Fill>
</Rectangle>
 
<Button Content="ReDraw" Height="23" Name="btn_redraw" Width="106" Click="btn_redraw_Click" />

WebBrowserBrush'ı ekrana yansıtmak için C# kodu aşağıdaki gibi olacaktır.

private void btn_redraw_Click(object sender, RoutedEventArgs e)
{
    WebBrush.Redraw();
}

Bu sayede sayfa içerisine gömdüğünüz HTML kodu dışarıdan silverlight projesi gibi algılanır. Bu HTML gömme özelliğinin sadece Out-Of-Browser uygulamalarda çalıştığını hatırlatmakta fayda var.

Kolay gelsin.

Püf Noktası #87 - Silverlight 4 HTML Kod Gömme

Pazar, 28 Mart 2010 13:25 by ikivanc
Bir önceki püf noktasında bahsettiğimiz Webbrowser ile herhangi bir URL nasıl sayfa içerisine gömülür onu görmüştük.

Şimdi de sadece bir html kodunu nasıl gömeriz ona bakalım

Sadece HTML kod eklemek için C# kodu aşağıdaki gibidir;

private void btn_html_ekle_Click(object sender, RoutedEventArgs e)
{   
    HTMLbrowser.NavigateToString(txt_address.Text);
}


Textbox'ın içerisine aşağıdaki flash videonun html kodunu kopyalayıp, HTML Ekle butonuna tıklayalım.

<object width="400" height="225">
  <param name="allowfullscreen" value="true" />
  <param name="allowscriptaccess" value="always" />
  <param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9831941&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" />
  <embed src="http://vimeo.com/moogaloop.swf?clip_id=9831941&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" 
        type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object>


Bu sayede herhangi bir html kodu silverlight sayfa içerisine ekleyerek, istediğimiz bir sayfanın bileşenini ve bir parçasını sayfa içerisine gömebiliriz. Bu özellik sayesinde bir flash dosyasını veya flash bi video'yu silverlight bir sayfa içerisine gömebiliriz.

Kolay gelsin.

Püf Noktası #86 - Silverlight 4 HTML Hosting

Cumartesi, 27 Mart 2010 14:18 by ikivanc
Silverlight 4 ile gelen benim en çok beğendiğim özellik webbrowser özelliği. Yani HTML içeriklerin silverlight sayfa içerisinde gösterilmesi.

Bu özellik Silverlight 4 içerisinde Webbrowser adında bir component ile sağlanmakta. Yalnız bu webbrowser normal web sayfası içinde çalışmıyor, Out-Of-Browser modunda çalışıyor.

Şimdi de istediğimiz url adresini getiren bir uygulama oluşturalım.

XAML kodu aşağıdaki gibidir.

<WebBrowser x:Name="HTMLbrowser" Margin="12,36,8,0"
            Height="579" VerticalAlignment="Top"/>
 
<TextBox Height="23" HorizontalAlignment="Left" 
         Margin="12,6,0,0" Name="txt_address" Width="395" />
 
<Button Content="Adrese Git" Height="23" Margin="413,6,0,0"
        Name="btn_address" Width="75" Click="btn_address_Click"/>

C# kodu da aşağıdaki gibi olacaktır.

private void btn_address_Click(object sender, RoutedEventArgs e)
{
    HTMLbrowser.Navigate(new Uri(txt_address.Text,UriKind.RelativeOrAbsolute));
}


Bu component sayesinde herhangi bir siteyi sayfa içerisine gömebileceğimiz gibi, flash dosyalarını da sayfamıza gömebiliriz. Silverlight uygulamamız içerisinde youtube videosu oynatabileceğiz.

Kolay gelsin.

Püf Noktası #85 - Silverlight 4 RichTextBox

Cuma, 26 Mart 2010 16:02 by ikivanc
Silverlight 4 ile beraber gelen güzelliklerden birisi de RichTextBox. C# windows application'dan aşina olduğumuz bu component artık Silverlight içerisine geldi.

XAML tarafında kodu aşağıdaki gibi gelmekte.

<RichTextBox Margin="163,167,12,12" 
             Background="BlanchedAlmond" Text="Project365!"/>

Artık text işleme işlemleri ve modifikasyonlar çok daha rahat olacak. Bir RichTextBox'ın içerisinde metinlerin bir kısmı italic, bir kısmı bold veya normal olabileceği gibi içerisine resim, link gibi ekstra özellikler de ekleyebileceğiz.


Bu da Tim Heuer'in blogunda RichTextBox ile yapılabileceklere örnek

Kolay gelsin.

Püf Noktası #84 - Silverlight 4 RightClick

Perşembe, 25 Mart 2010 13:49 by ikivanc
Silverlight 4 ile beraber artık mouse'un sağ tuşunun eventlarını da yakalayabiliyoruz. Daha önceki sürümlerde sağ tıklayınca silverlight seçenekleri geliyordu ve artık bunu istediğimiz şekilde düzenleyebiliriz.


Basit bir şekilde mouse'un sağ tuşunun tıklandığında ve kaldırıldığında ki işlemi yakalamaya göz atalım.

public MainPage()
{
    InitializeComponent();
    this.MouseRightButtonDown += 
        new MouseButtonEventHandler(MainPage_MouseRightButtonDown);
 
    this.MouseRightButtonUp += 
        new MouseButtonEventHandler(MainPage_MouseRightButtonUp);
}
 
void MainPage_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}
 
void MainPage_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
    MessageBox.Show("Project365 RightClick!");
}

Yukarıdaki kodda da görüldüğü gibi MouseRightButtonDown ile o event'ı yakaladık ve MouseRightButtonUp ile de Ekrana mesaj yazdırdık.


Bu sayede mouse'un sağ tuşuna menü ekleyerek daha efektif hale de getirebiliriz uygulamamızı.

Kolay gelsin.

Püf Noktası #83 - Silverlight 4 Notification

Çarşamba, 24 Mart 2010 13:28 by ikivanc
Silverlight 4'ün en sevdiğim özelliklerinden birisi, bir durum olduğunda uyarı vermek için çalışan notification desteği. Tıpkı Outlook'ta yeni bir mail'in geldiğinin haber verilmesi gibi Silverlight 4'te de bu işlemi rahatlıkla yapabileceğiz.

Şimdi de sadece bir textblock'ı uyarı olarak gösteren bir notification oluşturalım.

Bunun için C# tarafında tanımlamalar aşağıdaki gibi olacaktır.

//Yeni bir norification'ın oluşturulması
NotificationWindow uyari = new NotificationWindow();
uyari.Width = 350;
uyari.Height = 75;
 
// Notification'ın içeriğinin tanımlanması
TextBlock txt_mesaj = new TextBlock();
txt_mesaj.Text = "Project365! Notification";
txt_mesaj.FontSize = 20;
 
// Notification'ın içeriğinin atanması
uyari.Content = txt_mesaj;
 
//Notification'ın gösterilmesi
uyari.Show(4000);

Burada Show() metodu içerisine yazacağımız milisaniye cinsinden ekranda uyarının ne kadar duracağıdır. Bu şekilde istediğimiz süre boyunca uyarı mesajımızı ekranda tutabiliriz.

Fakat dikkat etmemiz gereken nokta bu notification'ları çalışıtırabilmek için uygulamanın masaüstü çalışma (out-of browser) desteğinin olması gerekiyor. Bu ayarın nasıl yapılması gerektiğini 47. günün püf noktasında bulabilirsiniz.



Görüldüğü gibi sadece tek bir component'i içerik olarak gösterdik Notification'ımıza, bu notification'ın yapısını silverlight tarafında xaml ile tasarlayarak da modifiye edebiliriz.

Kolay gelsin.

Püf Noktası #82 - Silverlight 4 Bileşen Yazdırma

Salı, 23 Mart 2010 10:39 by ikivanc
Bir önceki püf noktasında silverlight sayfaların nasıl yazdırıldığına göz atmıştık. Şimdi de sadece istenilen bileşen nasıl yazdırılır ona bakalım.

Tek bileşen yazdırmayı, içerisinde pek çok bileşen olan bir sayfada yapmak istersek bir StackPanel içerisine atarak ya da bileşenin ismini vererek bu işlemi C# tarafında gerçekleştirebiliriz.

void ekraniyazdir_PrintPage(object sender, PrintPageEventArgs e)
{
    e.PageVisual = this.listBox1;
}

Listbox'ı yazdırmak istediğimiz için, print edilecek bileşeni e.PageVisual ile belirledik. XPS ile çıktının görüntüsü aşağıdaki gibi olacaktır.


Kolay gelsin.