WPF 用户控件的简单使用
效果如下图,添加了六个用户控件:
实现方式:
1.首先添加一个用户控件UserControl1,xaml代码如下:
<UserControl x:Class="WPF0628.UserControl1"
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"
xmlns:local="clr-namespace:WPF0628"
mc:Ignorable="d"
d:DesignHeight="50" d:DesignWidth="300">
<StackPanel Orientation="Horizontal">
<Label Content="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=Title}" Width="100" Height="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" BorderBrush="#ABADB3" BorderThickness="1 1 0 1" Background="#D0D1D4"></Label>
<TextBox Width="200" Height="50" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Padding="20 0 0 0"></TextBox>
</StackPanel>
</UserControl>
然后在其后台添加一个依赖属性,
namespace WPF0628
{
/// <summary>
/// UserControl1.xaml 的交互逻辑
/// </summary>
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public string Title
{
get { return (string)GetValue(TitleProperty); }
set { SetValue(TitleProperty, value); }
}
public static readonly DependencyProperty TitleProperty =
DependencyProperty.Register("Title", typeof(string), typeof(UserControl1), new PropertyMetadata(""));
}
}
2.主窗体的xaml代码:
<Window x:Class="WPF0628.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPF0628"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid Margin="20" Grid.Column="0" Grid.Row="0">
<local:UserControl1 Title="姓名"></local:UserControl1>
</Grid>
<Grid Margin="20" Grid.Column="0" Grid.Row="1">
<local:UserControl1 Title="证件号"></local:UserControl1>
</Grid>
<Grid Margin="20" Grid.Column="0" Grid.Row="2">
<local:UserControl1 Title="地址"></local:UserControl1>
</Grid>
<Grid Margin="20" Grid.Column="1" Grid.Row="0">
<local:UserControl1 Title="电话"></local:UserControl1>
</Grid>
<Grid Margin="20" Grid.Column="2" Grid.Row="1">
<local:UserControl1 Title="性别"></local:UserControl1>
</Grid>
<Grid Margin="20" Grid.Column="2" Grid.Row="2">
<local:UserControl1 Title="备注"></local:UserControl1>
</Grid>
</Grid>
</Window>