Silverlight uygulamamızın tarayıcı tarafından tekrar boyutlandırıldığını nasıl algılarız?

0 dakikada yazıldı

5866 defa okundu

Düzenle

Silverlight 2.0 Beta 2 ile beraber uygulamanızı hazırladınız ve
kullandığınız kontrollerin görsel özelliklerini öyle bir ayarladınız ki
istemci tarafında kullanıcı tarayıcı penceresinin boyutunu değiştirse de
uygulamanız herhangi bir sorun yaşamıyor. Ama keşke programatik olarak
da tarayıcının boyutu değiştiğinde haberim olsaydı diyorsanız işte size
çözüm;

[VB]

Private Sub Page_Loaded(ByVal sender As Object,
ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded

    AddHandler
App.Current.Host.Content.Resized, AddressOf Resized

End Sub

[C#]

public Page()

{   

    InitializeComponent();   

    App.Current.Host.Content.Resized += new EventHandler(Resized);

}

Yukarıdaki şekliyle o an için geçerli olan uygulamanın içerisinde yer
aldığı sunucu elementi bulup Resized durumunu yakalıyoruz. Aslında
Resized durumundan bağımsız bir şekilde istediğiniz zaman
Silverlight uygulamanızın içerisinde bulunduğu pencerenin boyutunu
aşağıdaki kodlar ile alabilirsiniz.

[VB]

Private Sub Resized(ByVal sender As Object,
ByVal e As System.EventArgs)

    Dim Yukseklik As Double
= App.Current.Host.Content.ActualHeight

    Dim Genislik As Double
= App.Current.Host.Content.ActualWidth

End Sub

[C#]

void Resized(object sender, EventArgs e)  

{  

    double yukseklik =
App.Current.Host.Content.ActualHeight;  

    double genislik =
App.Current.Host.Content.ActualWidth

}

Bu işlemi Resized event'ı içerisinde yaptığımızda ise internet
tarayıcısının boyutları değiştiğinde yeni boyutları almış oluyoruz. Ufak
bir uyarı yaparak yazımı tamamliyim, yukarıdaki kodların doğru
çalışabilmesi için tarayıcı içerisinde Silverlight uygulamanızın %100
genişlik ve yükseliğe sahip olması gerekiyor. Aslına bakılırsa tarayıcı
penceresinin değil Silverlight uygulamasının container'ının boyutunu
alıyoruz o nedenle eğer Silverlight uygulamasının boyutları sayfada
sınırlanmış olursa elimize sürekli aynı değerler ulaşacaktır.

Hepinize kolay gelsin.