如果动态创建WPF控件,动态捕捉控件的事件,以及定义属性等,上图是我学习后的一个效果图,后续会把实现的代码直接贴上来,我相信看代码是众网友的强项。
以下是我的工程文件预览:
App.xaml没动过,是系统生成的。
MainWindow.xaml
[xaml代码]
<Window x:Class="WpfMainApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid Name="grdParent">
<Button Content="Dynamic Load Wpf Control" Height="36" HorizontalAlignment="Left" Margin="12,263,0,0" Name="button1" VerticalAlignment="Top" Width="228" Click="button1_Click" />
<Button Content="Set Wpf Control Content" Height="29" HorizontalAlignment="Left" Margin="254,12,0,0" Name="button2" VerticalAlignment="Top" Width="213" Click="button2_Click" />
<TextBox Height="29" HorizontalAlignment="Left" Margin="12,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="147" />
</Grid>
</Window>
[CS代码]
下面是控件的代码:
EditPlus.xaml
[xaml代码]
<UserControl x:Class="WpfComctl.EditPlus"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" Name="EditPlusControl">
<Grid Name="grdRoot"></Grid>
</UserControl>
[CS代码]