在WPF中自定义控件时如何选择基类

news/2024/9/20 6:44:21 标签: wpf

在WPF中需要自定义控件,首要要选择需要继承的基类

FrameworkElement

这是常用的最低级的基类。通常,只有当希望重写OnRender()方法并使用DrawingContext从头绘制内容时,才会继承该类。

Control

当从头开始创建控件时,这是最常用的起点。该类是所有用户交互小组件的基类。Control类添加了用于设置背景、前景、字体和内容对齐方式的属性。控件类还为自身设置了Tab顺序(通过IsTabStop属性),并且引入 了鼠标双击功能(MouseDoubleClick和PreviewMouseDoubleClick)。但最重要的是,Control类定义了Template属性。

ContentControl

这是能够显示任意单一内容的控件的基类。显示的内容可以是元素或结合使用模版的自定义对象(内容通过Content属性设置,并且可以通过ContentTemplate属性提供可靠的模板)

UserControl

这是可使用设计视图进行配置的内容控件。尽管用户控件和普通的控件是不同的,但当希望在多个窗口中快速重用用户界面中的不变模块时(而不是创建真正的能在不同应用程序之间转移的独立控件),通过就使用该基类

ItemsControlSelector

ItemsControl是封装列表控件的基类,但不支持选择,而Selector类是支持选择的控件的更具体类。创建自定义控件时不经常使用这些类,可以使用ListBox,ListView,TreeView等控件的DataTemplate来实现

Panel

该类是具有逻辑控件的基类。布局控件能够包含多个子元素,并根据特定的布局语义安排这些子元素。通常,面板提供了用于设置子元素的附加属性,配置如何安排子元素

Decorator

提供在单个子元素(如 Border 或 Viewbox)上或周围应用效果的元素的基类。

                                                       元素和控件基类继承关系图


http://www.niftyadmin.cn/n/5666792.html

相关文章

[Redis][String][上]详细讲解

目录 0.前言1.常见命令1.SET2.GET3.MSET && MGET4.SETNX && SETXX 2.计数命令1.INCR2.INCRBY3.DECR4.DECYBY5.INCRBYFLOAT6.注意 0.前言 字符串类型是Redis最基础的数据类型,关于字符串需要特别注意: Redis中所有的键的类型都是字符串类…

tasklist命令的应用实例

tasklist命令的应用实例 引言 在系统管理和故障排查过程中,了解当前正在运行的进程信息是至关重要的。Windows操作系统提供了一个强大的命令行工具——tasklist,它可以帮助用户查看当前系统中所有正在运行的进程及其相关信息。掌握这个命令的使用&…

通过npm安装 pnpm

安装pnpm npm install -g pnpm 获取当前配置的镜像地址 pnpm config get registry 设置新的镜像地址 pnpm set registry https://registry.npmmirror.com pnpm和npm的优劣 npm:优势:npm 是 Node.js 官方提供的包管理工具,它是默认的包管理器。具有广泛的…

java配置阿里云存储文件

1.maven导入依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.17.4</version></dependency> 如果使用的是Java 9及以上的版本&#xff0c;则还需要添加JAXB相关依赖。…

Unity教程(十六)敌人攻击状态的实现

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…

leetcode刷题day23|回溯算法Part02(39. 组合总和 、40.组合总和II、131.分割回文串)

39. 组合总和 思路&#xff1a;这个题与77. 组合的差异在于元素可以无限制重复被选取&#xff0c;那么只需要更改startIndex即可&#xff0c;每一层递归都可以从头选用元素。 回溯三部曲与77. 组合基本一致。 代码如下&#xff1a; class Solution {List<List<Intege…

自定义复杂AntV/G6案例

一、效果图 二、源码 /** * * Author: me * CreatDate: 2024-08-22 * * Description: 复杂G6案例 * */ <template><div class"moreG6-wapper"><div id"graphContainer" ref"graphRef" class"graph-content"></d…

百度营销转化追踪(网页JS布码)

引言&#xff1a;使用百度营销api配置网站上各个模块组件的转化追踪&#xff0c;统计网站上的各组件模块点击等信息。 一、选择接入方式&#xff08;本文选择的是网页JS布码&#xff09; 参考文档&#xff1a;百度营销-商业开发者中心百度开发者中心是一个面向开发者的知识分享…