using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;
using System.Windows.Markup;
namespace Day1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private Button myButton;
public MainWindow()
{
InitializeComponent();
}
public MainWindow(string xamlFile) //重载MainWindow,构造带参数的函数
{
this.Width = this.Height = 285;
this.Left = this.Top = 100;
this.Title = "Dynamically loaded xaml";
//从一个XAMLwen文件中获取xaml内容
DependencyObject rootElement;<span style="white-space:pre"> </span>//<span class="m" style="color: rgb(102, 102, 102); font-family: arial; font-size: 13px; line-height: 18.2px;"> </span><span style="font-family: arial; font-size: 13px; line-height: 18.2px;">DependencyObject</span><span style="color: rgb(51, 51, 51); font-family: arial; font-size: 13px; line-height: 18.2px;">是WPF中比较顶层的一个类,它继承之DispatcherObject</span>
using (FileStream fs = new FileStream(xamlFile, FileMode.Open))//文件流读取,using方法只使用一次
{
rootElement = (DependencyObject)XamlReader.Load(fs);
}
this.Content = rootElement;
myButton = (Button)LogicalTreeHelper.FindLogicalNode(rootElement,"button1");//创建myButton对象,要传的两个参数(要查找的对象,Name)
myButton.Click += myButton_Click;//关联的mybutton_click事件
}
private void myButton_Click(object sender,RoutedEventArgs e)
{
myButton.Content = "thank you.";
}
}
}
Mainwindow.xaml代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
namespace Day1
{
class program:Application //继承Application
{
[STAThread()] //单线程
static void Main()
{
program app = new program();
app.MainWindow = new MainWindow("Window1.xaml");
app.MainWindow.ShowDialog(); //通过模态的方法打开
}
}
}</span><span style="font-size:18px;">
</span>
program.cs