Dynamically Producing XAML files using XamlWriter.Save Method
The XamlWriter.Save is used to serialize the contents of a WPF application as a XAML file. I wrote a small sample in which we will be serializing the WPF objects to a XAML string
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.IO;
using System.Windows.Data;
using System.Windows.Markup;
using System.Windows.Media;
namespace TestXAML
{
class Program
{
[STAThread ]
static void Main(string[] args)
{
int[] arr = new int[5] ;
arr[0]=1;
arr[1]=2;
arr[2]=3;
arr[3]=4;
arr[4]=5;
ListBox objlst=new ListBox() ;
objlst.ItemsSource = arr;
objlst.Width = 200;
StackPanel MyStackPanel=new StackPanel();
SolidColorBrush brush = new SolidColorBrush();
brush.Color = Color.FromRgb(200, 100, 255);
MyStackPanel.Background = brush;
MyStackPanel.Children.Add(objlst);
string mystrXAML = XamlWriter.Save(MyStackPanel);
FileStream fs = File.Create("testfile.xaml");
StreamWriter sw = new StreamWriter(fs);
sw.Write(mystrXAML);
sw.Close();
fs.Close();
}
}
}
Comments
- Anonymous
September 08, 2008
That's good enough to generate a xaml page like a dummy html page in old times. The main striking idea is to generate something more functional with this. Howz about generating a fresh UI like this (i mean dynamic xaml) and attaching the event-handlers from an existing business-rule .cs class file.Does that make any sense?A - Anonymous
April 04, 2010
Good example , i believe now we have lots of other good ways to generate XAML.