Register | Password Reset

Search

Pages

  • Dosyalar
  • Ozgecmis
  • Projeler

Blogs

  • barkmaz.blogspot.com .NET & Sharepoint and Engineering
  • carryonwayward.com invalid karamela sepeti
  • konuralp.gen.tr Alper Konuralp’in Blog Sitesi
  • onderozcan.blogspot.com Önder ÖZCAN

Softwares

  • Debian Universal Operating System
  • EasyWords Learn New Words
  • Opera Faster & Safer Internet

Tag Cloud

.net api books browser c# captcha chrome cleartype cloud code desktop desktop tools encoding firefox font games gelecek google graphics gsm internet explorer lambda library linux live cd moba opengl opera operating system optimization organization prıvacy put.io recaptcha search silverlight task parallel library threading type casting userscript utility windows 7 windows vista wpf xaml
RSS feed


Archive

Posts Tagged ‘xaml’

Dynamic Code with XAML

Eser Ozvataf November 13th, 2008 No comments

XAML ile ilgili yaptığım bir araştırma esnasında dış bir kaynaktan gelen kodu XAML içerisinde nasıl çalıştıracağım konusunda bir kaç örnekle karşılaştım. Eğer özellikle banner rotation yapacaksanız, veya canlı bir feed’i tamamiyle dışarıdan almayı düşünüyorsanız eminim oldukça işe yarayacaktır.

using Sys = System;
using SysIO = System.IO;
using SysWinMarkup = System.Windows.Markup;
using SysXml = System.Xml;
using SysXmlLinq = System.Xml.Linq;

public static class XamlUtils {
public static object GetXamlObject(string source) {
SysXml.XmlDocument _xmlDocument = new SysXml.XmlDocument();
_xmlDocument.LoadXml(source);

return Xaml.GetXamlObject(_xmlDocument);
}

public static object GetXamlObject(SysXml.XmlDocument xmlDocument) {
const string xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation";
const string xmlns_x = "http://schemas.microsoft.com/winfx/2006/xaml";

if(string.IsNullOrEmpty(xmlDocument.DocumentElement.GetAttribute("xmlns"))) {
xmlDocument.DocumentElement.SetAttribute("xmlns", xmlns);
}
if(string.IsNullOrEmpty(xmlDocument.DocumentElement.GetAttribute("xmlns:x"))) {
xmlDocument.DocumentElement.SetAttribute("xmlns:x", xmlns_x);
}

SysIO.TextReader _stringReader = new SysIO.StringReader(xmlDocument.OuterXml);
SysXml.XmlReader _xmlReader = new SysXml.XmlTextReader(_stringReader);

return SysWinMarkup.XamlReader.Load(_xmlReader);
}
}

Kullanımı:

System.Windows.Controls.Grid _gridObject = XamlUtils.GetXamlObject("<grid><textblock>ok</textblock></grid>") as System.Windows.Controls.Grid;
this.Content = _gridObject;

Görüldüğü gibi, dış bir kaynaktan alınan/okunan string’i XamlUtils.GetXamlObject metodu ile XAML’e dönüştürebiliyoruz. Burada dikkat etmemiz gereken bu metoddan dönen objenin XAML’in root element’ine düzgün cast edilmesinin gerekliliği. (Örnekte root element’i Grid olarak ele aldım)

Categories: .NET Tags: .net, c#, code, wpf, xaml
Page 1 of 11

eser.ozvataf.com.