您的位置:首页 > 其它

WPF动态加载XAML

2017-07-17 22:35 471 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace WpfApplication1
{
public class Program:Application
{
[STAThread]
static void Main()
{
Program app = new Program();
app.MainWindow = new MainWindow("MainWindow.xaml");

app.MainWindow.ShowDialog();
}
}
}


using System;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Markup;

namespace WpfApplication1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private Button m_Button;

public MainWindow()
{
//InitializeComponent();
}

public MainWindow(String xamlFile)
{
this.Width = this.Height = 285;
this.Left = this.Top = 100;
this.Title = "Hello World";

//从一个XMAL文件里获取XAML内容
FileStream fs = new FileStream(xamlFile, FileMode.Open);

DependencyObject rootElement = (DependencyObject)XamlReader.Load(fs);

fs.Close();

this.Content = rootElement;

m_Button = (Button)LogicalTreeHelper.FindLogicalNode(rootElement, "Button1");

m_Button.Click += m_Button_Click;

}

private void m_Button_Click(object sender, RoutedEventArgs e)
{
m_Button.Content = "Thank you";
}

}
}

<DockPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Button Name="Button1" Margin="60" Content="Hello World"></Button>
</DockPanel>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: