[WPF學習筆記]動態加載XAML


好久沒寫Blogs了,現在在看【WPF編程寶典】,決定開始重新寫博客,和大家一起分享技術。

在編程時我們常希望界面是動態的,可以隨時變換而不需要重新編譯自己的代碼。

以下是動態加載XAML的一個事例代碼。

在debug文件夾下新建一個文本文件,重命名為:file.xaml

插入界面代碼:

<DockPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<Button Name="button1" Margin="30" Content="Pleas click me."></Button>

</DockPanel>

在VS新建LoadXAML.CS類。

public class LoadXAML :Window

{

private Button button1;

 

public LoadXAML(string xamlFile)

{

Width = Height = 285;

Left = Top = 100;

Title = "動態加載XAML";

 

DependencyObject rootElement;

using (FileStream fs=new FileStream(xamlFile, FileMode.Open))

{

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

 

}

Content = rootElement;

//查找控件(方法一)

//button1 = (Button) LogicalTreeHelper.FindLogicalNode(rootElement, "button1");

 

//查找控件(方法二)

FrameworkElement frameworkElement = (FrameworkElement) rootElement;

button1 = (Button) frameworkElement.FindName("button1");

 

button1.Click += button1_Click;

}

 

void button1_Click(object sender, RoutedEventArgs e)

{

button1.Content = "Thank you.";

}

 

修改App.xaml啟動項

protected override void OnStartup(StartupEventArgs e)

{

var win = new LoadXAML("file.xaml");

win.Show();

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM