Silverlight allows you to load XAML at runtime. You might want to do this to reduce your application size, spread out loading through your application's lifetime, or dynamically load content. When you have retrieved your XAML content as a string, you need to pass it into the XamlReader.Load() method. All that is then necessary to do is cast the results of XamlReader.Load() to the type of object the XAML represents.
When constructing the XAML, be sure to add the xmlns namespace property to your objects; otherwise, Silverlight will be unable to determine the type of object you are trying to create. The following is a simple example illustrating loading a TextBlock from a string that would be placed in the code behind of a XAML file (and assumes an element called LayoutRoot exists):
string XAMLContent=@"<TextBlock xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/ presentation"" Canvas.Left=""200"" Canvas.Top=""100"" Text=""Hello""></TextBlock>"; TextBlock TextBlock=(TextBlock) System.Windows.Markup.XamlReader.Load(XAMLContent); LayoutRoot.Children.Add(TextBlock);
|
3.144.98.153