在运行时加载XAML 文件非常的简 单,这里有个简单的例子在运行时加载XAML,然后再给XAML对象添加事件处理程序。
首先创建下面的XAML页并且把它复制到debug目录 下:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation "
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml "
Title="Page1">
<Grid>
<Button Margin="0,0,9,38" Name="button1" Height="82" HorizontalAlignment="Right" VerticalAlignment="Bottom" Width="132">Button</Button>
</Grid>
</Page>
下面是C#代码:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
LoadXAMLMethod();
}
Button ButtoninXAML;
public void LoadXAMLMethod()
{
try
{
StreamReader mysr = new StreamReader("Page1.xaml");
DependencyObject rootObject = XamlReader.Load(mysr.BaseStream) as DependencyObject;
ButtoninXAML = LogicalTreeHelper.FindLogicalNode(rootObject, "button1") as Button ;
ButtoninXAML.Click += new RoutedEventHandler(Button_Click);
this.Content = rootObject;
}
catch (FileNotFoundException ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
public void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hi WPF");
}
}
}
最后不要忘了添加下面两个命名空间的引用:
using System.IO;
using System.Windows.Markup;