Archive for May 2011
WPF’ing around with Boo and external xaml files
Here is a snippet of Boo code (formatted with Python syntax highlighter) that will load a xaml file into a WPF Window:
import System import System.Windows from PresentationFramework import System.Windows.Markup from PresentationFramework import System.IO class XamlWindow(Window): def constructor(name): load_xaml(name) def load_xaml(name): xaml_file = File.OpenRead(Path.GetFullPath(name)) self.Content = XamlReader.Load(xaml_file) Application().Run(XamlWindow("mainui.xaml"))</pre>
See http://devpinoy.org/blogs/smash/archive/2006/10/04/XAMl-meets-Boo.aspx for reference.
Alternatively, here is the equivalent IronPython code:
import clr clr.AddReference("PresentationFramework") clr.AddReference("PresentationCore") from System.Windows import Window, Application from System.Windows.Markup import XamlReader from System.IO import File, Path class XamlWindow(Window): def __init__(self, name): self.load_xaml(name) def load_xaml(self, name): xaml_file = File.OpenRead(Path.GetFullPath(name)) self.Content = XamlReader.Load(xaml_file) Application().Run(XamlWindow("mainui.xaml"))
Lastly, here is an example xaml file
<StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Label Content="Hello World" /> <Button Content="Clickable" /> </StackPanel>
Note: There is no UserControl or Window element and the namespaces are defined on the root container, the StackPanel.
Results:
