WPF从后台动态加载控件虽然不常用到,但网上资料也不多。今天做了一个这样的小东西,记录一下:

首先,我们在在xaml文件的文件头中,加入一个动态载入的函数Loaded="Window_Loaded"

并且为window窗体命名,

x:Name="win_mainX"

整个头部的定义如:

<Window x:Class="Listing_3.__About_Dialog_with_Tree_Walking.ImageWindow"
xmlns=" http://schemas.microsoft.com/winfx/2006/xaml/presentation "
xmlns:x=" http://schemas.microsoft.com/winfx/2006/xaml "
Title="ImageWindow" Height="300" Width="505" Loaded="Window_Loaded" x:Name="win_mainX">

在后台的cs文件中,我们以动态加载一个Button为例,在 Window_Loaded函数中,

如下代码:

Canvas cContent = new Canvas();

//生成一个按钮
Button myButton = new Button();
myButton.Content = "按钮";
myButton.Width = 100;
myButton.Height = 50;

cContent.Children.Add(myButton);

win_mainX.Content = cContent;

如果需要定义控件的位置,在xaml文件中我们看到这样<Grid></Grid>

增加一个命名如:<Grid x:Name="gdMain"></Grid>

然后,我们把win_mainX.Content = cContent;修改成

myButton.Margin = new Thickness(10, 10, 10, 10);
gdMain.Children.Add(cContent);

运行,一个按钮加载完成。