Sayfa içi Silverlight kullanımı özellikle Silverlight animasyonlarını ve görsellerini oluşturan XAML kodunu sunucu tarafında oluşturuyorsanız belirli senaryolarda işinizi kolaylaştırabilir. Örneğin bir ASP.NET Repeater içerisinde ItemTemplate'ler ile XAML kodu oluşturmak bu konsept içerisinde mümkün.
Normal şartlarda bir Silverlight uygulaması createSilverlight fonksiyonundaki Silverlight.createObjectEx metoduna verilen source parametresinde yazan adresteki XAML kodunu alarak gerekli animasyonları oluşturur. Source parametresi içerisinde aşağıdaki gibi # işaret ile başlayarak bir kaynak belirttiğinizde Silverlight.createObjectEx fonksiyonusayfa içerisinde uygun bir XAML kaynağı arayacak ve varsa gerekli yüklemeyi sağlayacaktır.
HTML-Kodu:
function createSilverlight()
{
var scene = new ITU2.Page();
Silverlight.createObjectEx({
source: "#CODE",
parentElement: document.getElementById("SilverlightControlHost"),
id: "SilverlightControl",
properties: {
width: "100%",
height: "100%",
version: "1.0"
},
events: {
onLoad: Silverlight.createDelegate(scene, scene.handleLoad)
}
});
}
Peki #CODE da nedir? Yukarıdaki gibi #CODE dediğimizde Silverlight harici bir XAML dosyasına bakmak yerine createSilverlight fonksiyonunun çalıştırıldığı sayfada ID bilgisi CODE olan bir SCRIPT bloğu arayacak. Söz konusu SCRIPT bloğunun aşağıdaki gibi TYPE özelliğinin de TEXT/XAML olması gerekir.
Yukarıdaki örnekte de görebildiğiniz üzere Silverlight uygulaması ile ilgili tüm XAML kodu SCRIPT tagları arasına yerleştirilmiş durumda. Daha önceki adımda JavaScript tarafında #CODE diyerek burada ID bilgisi CODE olan bölümden gerekli XAML içeriğinin alınmasını sağladık. Silverlight uygulamamız normal bir Silverlight animasyonu olarak çalışmaya devam edecektir. Direk sayfa içerisinde bulunan bu XAML kodunu harici bir sayfa yaratmadan Repeater gibi nesnelerle veritabanına bağlayarak kullanmamız bu teknik ile çok daha kolaylaşıyor.
Hepinize kolay gelsin.