星屿浅奈 ✧ Saneko

Back

WPF创建简单用户控件Blur image

基本概念#

用户控件(User Control)​​是一种可重用的UI组件,通过组合现有控件来创建自定义功能模块。它本质上是一个容器,可以包含其他控件并封装其交互逻辑。

主要特点#

  • ​继承自UserControl类​​.
  • ​XAML+代码后置.
  • 可重用​​的独立功能单元.
  • 可自定义属性、方法和事件​.

核心优势#

  1. 开发效率提升
  2. 维护性增强
  3. 功能解耦

示例#

假设需要封装一个FileSelectorBox控件,用来实现文件选择的功能。

  • 控件组成: 由一个TextBlock和一个Button组成。
  • 依赖属性: FilePath(当前选择的文件路径)
  • 自定义事件: OnFileChanged(当文件路径发生改变)

创建用户控件#

右键项目,选择添加,选择用户控件

创建控件

组合现有控件#

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0"/>
    <Button Grid.Column="1" Content="选择" Width="71"/>
</Grid>
xml

添加依赖属性和自定义事件#

当FilePath被修改时,需要修改TextBlock的内容

<TextBlock Grid.Column="0" Text="{Binding FilePath,
          RelativeSource={RelativeSource AncestorType=UserControl}}" />
xml

按钮功能#

当按钮点击时,需要弹出一个文件选择框来选择文件

<Button Grid.Column="1" Content="选择" Width="71" Click="Button_Click" />
xml

控件使用#

<Grid>
    <local:FileSelectorBox  FilePath="{Binding ExternalFilePath, Mode=TwoWay}" OnFileChanged="FileSelectorBox_OnFileChanged"/>
</Grid>
xml

图片

WPF创建简单用户控件
https://saneko.me/blog/b1662f148546
Author Saneko
Published at May 14, 2025
Buy me a cup of coffee ☕.
Comment seems to stuck. Try to refresh?✨