当前位置: 首页 > news >正文

WPF 常用控件

WPF六种常用控件:布局控件、内容控件、带标题内容控件、条目控件、带标题条目控件和特殊内容控件(如:TextBox,TextBlock,Image等)。

实例链接:WPF常用控件实例

Window(窗体)

Winodw窗体派生自ContentControl,有一个Content属性,里面可以放一个任意控件。Window常用属性:Icon设置窗体的图标,ShowInTaskbar 是否在任务栏项目窗体图标,WindowState 窗口显示方式,WindowStyle窗体类型,WindowStartupLocation窗体显示位置,ResizeMode窗体条件。日常开发中最常用的是,去掉原生的Window边框,实现自定义背景且圆角带阴影的窗体,Xaml代码如下:

<Window x:Class="WpfControlDemo.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:WpfControlDemo"mc:Ignorable="d"Width="800" Height="400"Title="MainWindow" WindowStyle="None" WindowStartupLocation="CenterScreen"  AllowsTransparency="True" Background="Transparent"MouseLeftButtonDown="Window_MouseLeftButtonDown" ><Grid><Border CornerRadius="15" Background="White" Margin="15"><Border.Effect><DropShadowEffect Color="Gray" ShadowDepth="0" BlurRadius="5"></DropShadowEffect></Border.Effect></Border></Grid>
</Window>

鼠标按住窗体拖动,后台代码如下:

        private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e){this.DragMove();//允许鼠标拖动窗体}

Border (边框)

通过于布局元素一起使用,只能包含单个控件,可以设置圆角(CornerRadius),边框(BorderBrush:边框颜色,BorderThickness:边框线条粗细)和效果(effect)等。

        <Border Width="100" Height="100" CornerRadius="10,10,0,0"  BorderBrush="Blue" BorderThickness="2"><Border.Effect><DropShadowEffect Color="Orange" ShadowDepth="0" BlurRadius="5"></DropShadowEffect></Border.Effect></Border>

Button(按键)

按键有常用属性Content(标签显示),Click(点击事件),Command(绑定命令),IsDefault(用户按下Enter键,相当于点击该按键),IsCancel(用户按下Esc键,相当于点击该按键)。

<Button Content="按键" Width="100" Height="30" IsDefault="True" Click="Button_Click" Grid.Row="1"/>

ReapButton(重复按键)

作用是当用户鼠标左键按住该按钮时,会一直触发点击事件,主要应用于一些播放器的快进等功能。

常用属性

描述

Delay

表示从用户按下鼠标左键到开始重复发送Click事件的延迟时间(毫秒)

Interval

按键持续按下左键,,每次发送Click事件的时间间隔(毫秒

<RepeatButton  Delay="100" Interval="1000" Click="repButton_Click"/>

TextBox(文本框,用于用户文字输入)

常用属性

描述

Text

文本内容

TextWrapping

文本是否自动换行,默认一行显示

TextAlignment

文本对齐方式

<TextBox Width="100" Height="30" Grid.Column="1" TextWrapping="Wrap" TextAlignment="Center" Text="设置TextWrapping后超出文字会换行"/>

PasswordBox(密码框,可隐藏用户输入)

常用属性

描述

Password

密码文本信息

PasswordChar

密码字符,默认是圆点

VerticalContentAlignment & HorizontalContentAlignment

设置内部密码文本的对齐方式

RichTextBox

RichTextBox 控件允许您查看和编辑文本、段落、图像、表格和其他富文本格式的内容,展现文本内容丰富,对System.Windows.Documents.FlowDocument对象进行丰富操作的编辑控件。

常用属性

描述

Document

获取或设置RichTextBox的SystemWindows.Documents.FlowDocument表示的内容

IsDocumentEnabled

用户是否可以交互(RichTextBox中的UIElement和 ContentElement中的对象),false用户将无法操作文档内容进行交互

Selection

当前选定内容

TextBlock(轻量级的文本控件)

轻量级的文本控件,多用于一些简短的标题或文字,或者成为内容控件的子元素作为文本呈现用,不可编辑,属性与TextBox相似,超出文本显示省略号可以设置TextTrimming="CharacterEllipsis"。

<TextBlock x:Name="txtb" Width="100" TextTrimming="CharacterEllipsis"  Text="超长文本显示省略号"/>

RadioButton(单选框)

常用属性

描述

Content

显示内容

GroupName

组名,这个在使用中需要注意,如果多个RadioButton设置了同一个组名,那么它们之间是互斥的,只有一个能被选中,不同组的不互斥

IsChecked

是否选中的状态

<StackPanel ><RadioButton IsChecked="True" Content="男" GroupName="sex" Grid.Row="2" /><RadioButton  Content="女" GroupName="sex" Grid.Row="2" />
</StackPanel>

CheckBox(多选框)

常用属性

描述

Content

显示内容

IsThreeState

确定控件是否支持两个或三个状态,默认为false,支持三个状态

IsChecked

是否选中的状态

<StackPanel Orientation="Horizontal"  Height="40"><CheckBox Content="羽毛球" Margin="5" IsChecked="True"></CheckBox><CheckBox Content="足球" Margin="5" IsThreeState="True"></CheckBox><CheckBox Content="篮球" Margin="5"></CheckBox>
</StackPanel>

Image(图片控件)

用于展示图片,主要属性就是Source(图片资源路径)。图片路径请参考:WPF 调用图片路径,或资源图片

 <Image Height="100" Width="100" Source="1.png" Stretch="Uniform"/>

ComboBox(组合框)

组合框是一组带有下拉列表的选择控件,通过单击控件上的箭头可显示或隐藏下拉列表。

常用属性

描述

IsDropDownOpen

获取或设置组合框下拉列表是否展开

IsEditable

获取或设置启用或禁用编辑文本框中文本的 ComboBox

IsReadOnly

获取或设置所选内容只读不可编辑

ListBox(列表控件)

ListBox 是一个 ItemsControl,这意味着它可以包含任何类型的对象的集合。

<ListBox Grid.Row="2" Grid.Column="1" Width="80" Height="100"><ListBoxItem><StackPanel Orientation="Horizontal"><TextBlock Text="1" VerticalAlignment="Center" Margin="0,0,10,0"/><Button Width="40" Height="20" Content="ok"/></StackPanel></ListBoxItem><ListBoxItem><StackPanel Orientation="Horizontal"><TextBlock Text="2" VerticalAlignment="Center" Margin="0,0,10,0"/><Button Width="40" Height="20" Content="ok"/></StackPanel></ListBoxItem>
</ListBox>

ListView

ListView 控件是派生自 ListBox 的 ItemsControl 控件。 通常,该控件的项为数据集合的成员,并且表示为 ListViewItem 对象。 ListViewItem 是一个 ContentControl 且只能包含单个子元素。 但是,该子元素可以是任何视觉元素。若要为 ListView 控件的内容指定视图模式,请设置 View 属性。WPF提供的一个视图模式为 GridView,可在具有可自定义列的表格中显示数据项集合。

<Window.Resources><ObjectDataProvider x:Key="EmployeeInfoDataSource" ObjectType="{x:Type ds:EmployeeInfoDataSource}"/>
</Window.Resources>
<Grid><ListView ItemsSource="{Binding Source={StaticResource EmployeeInfoDataSource}}" Grid.Column="2" Grid.RowSpan="2" Width="200" Height="200"><ListView.View><GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Employee Information"><GridViewColumn DisplayMemberBinding="{Binding Path=FirstName}" Header="First Name" Width="100"/><GridViewColumn DisplayMemberBinding="{Binding Path=LastName}" Width="100"><GridViewColumnHeader>Last Name<GridViewColumnHeader.ContextMenu><ContextMenu  Name="LastNameCM"><MenuItem Header="Ascending" /><MenuItem Header="Descending" /></ContextMenu></GridViewColumnHeader.ContextMenu></GridViewColumnHeader></GridViewColumn><GridViewColumn DisplayMemberBinding="{Binding Path=EmployeeNumber}" Header="Employee No." Width="100"/></GridView></ListView.View></ListView>
</Grid>
    public class EmployeeInfoData{public string FirstName { get; set; }public string LastName { get; set; }public string EmployeeNumber { get; set; }}public class EmployeeInfoDataSource:ObservableCollection<EmployeeInfoData>{public EmployeeInfoDataSource(){Add(new EmployeeInfoData{FirstName = "Xue",LastName = "Xiao",EmployeeNumber = "101"});Add(new EmployeeInfoData{FirstName = "Qiang",LastName = "Xiao",EmployeeNumber = "102"});Add(new EmployeeInfoData{FirstName = "Ming",LastName = "Xiao",EmployeeNumber = "103"});}}

GridView(列绑定控件)

GridView视图模式是ListView控件的视图模式中的一种。GridView及其辅助类能让你在表中来查看集合中的数据项,且可以通过表头来进行交互(表头是个按钮,可以给它加各种交互功能,如排序)。ListView是ListBox派生类,而GridView是ViewBase的派生类,ListView的View属性是一个ViewBase类型的对象,所以,GridView可以作为ListView的View来使用而不能作为独立的控件来使用。

布局控件请参考:WPF布局元素

其他控件:

Menu:菜单控件

GroupBox:分组框

Expander:伸展控件

Lable:标签控件 等...

WPF除了这些基础控件外,还支持用户定义控件:用户控件UserConrol(多个控件组合),CustomerControl自定义控件(改造或者新建控件),通过模板,样式,触发器,能创建丰富多彩的控件。

本文参考:https://blog.csdn.net/qq_39847278/article/details/127652570

实例链接:WPF常用控件实例

相关文章:

WPF 常用控件

WPF六种常用控件&#xff1a;布局控件、内容控件、带标题内容控件、条目控件、带标题条目控件和特殊内容控件(如:TextBox,TextBlock,Image等)。实例链接&#xff1a;WPF常用控件实例Window(窗体)Winodw窗体派生自ContentControl&#xff0c;有一个Content属性&#xff0c;里面可…...

河南工程学院蓝桥培训(2.21)

1&#xff0c;金币 461. 金币 - AcWing题库 #include <iostream> using namespace std; int n,a,ans,s; int main(){cin>>n;while(n--){if(a0)as;anss,a--;}cout<<ans;return 0; }...

新人使用Git获取远程仓库项目

前言 这篇git技术篇非常的简单基础&#xff0c;写它的原因很简单&#xff0c;因为现在很多的年轻人都很浮躁&#xff0c;刚入门就想学最牛x的&#xff0c;看不起基础的一些技术&#xff0c;比如说git操作、Linux基础命令&#xff0c;编程基础啥的。我身边有很多这样的年轻人&a…...

理解信号的

在日常生活中我们也经常面临许多的信号&#xff0c;手机通知、过红绿灯。。。这些信号在没有发生之前我们就知道这种信号产生我们需要干什么&#xff0c;那Linux里信号产生后&#xff0c;又怎么知道要做什么呢&#xff1f; -- 那当然是由程序员自己去设置啊 由于我们的用户空间…...

SpringSecurity学习(七)授权

授权 什么是权限管理 权限管理核心概念 SpringSecurity权限管理策略 基于URL地址的权限管理 基于方法的权限管理 一、权限管理 二、授权核心概念 在认证的过程成功之后会将当前用户登录信息保存到Authentication对象中&#xff0c;Authentication对象中有一个getAuthorities…...

【Vue3】模板语法

&#x1f3c6;今日学习目标&#xff1a;模板语法 &#x1f603;创作者&#xff1a;颜颜yan_ ✨个人格言&#xff1a;生如芥子&#xff0c;心藏须弥 ⏰本期期数&#xff1a;第三期 &#x1f389;专栏系列&#xff1a;Vue3 文章目录前言声明响应式状态插值文本Attribute&#xff…...

Linux基础

环境搭建&#xff1a;linux安装、远程连接常用命令&#xff1a;文件、目录、拷贝、移动、打包、压缩、文本编辑安装软件&#xff1a;文件上传、jdk、tomcat、mysql项目部署&#xff1a;Java应用、Python应用、日志查看、系统管理、用户权限Linux是一套免费使用、自由传播的操作…...

Spark-序列化、依赖关系、持久化

序列化 闭包检查 序列化方法和属性 依赖关系 RDD 血缘关系 RDD 窄依赖 RDD 宽依赖 RDD 任务划分 RDD 持久化 RDD Cache 缓存 RDD CheckPoint 检查点 缓存和检查点区别 序列化 闭包检查 从计算的角度, 算子以外的代码都是在 Driver 端执行, 算子里面的代码都是在 E…...

蓝桥杯刷题冲刺 | 倒计时16天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录1.青蛙跳杯子1.青蛙跳杯子 题目 链接&#xff1a; 青蛙跳杯子 - 蓝桥云课 (lanqiao.cn) X 星球的…...

Java设计模式-12 、建造者模式

建造者模式 &#xff08;将一个 复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。&#xff09; 建造者模式是一种创建型的模式&#xff0c;有一些对象的创建过程new 是很繁杂的。 什么时候去使用建造者模式 由上文可以得出在一些对象创建…...

一款全新的基于GPT4的Python神器,关键还免费

chartgpt大火之后&#xff0c;随之而来的就是一大类衍生物了。 然后&#xff0c;今天要给大家介绍的是一款基于GPT4的新一代辅助编程神器——Cursor。 它最值得介绍的地方在于它免费&#xff0c;我们可以直接利用它来辅助我们编程&#xff0c;真正做到事半功倍。 注意&#…...

上岸整理:2023前端面试题-vue,小程序,js,css

前端&#xff1a; 今年疫情结束后&#xff0c;前端行情不好&#xff0c;竞争压力很大&#xff0c;现在整理下个人认为面试很频繁的前端问题。 正题&#xff1a;无分类&#xff0c;因为面试官的问题也是随机的 一、基础 1、浏览器常见的报错信息与含义 2、304与204的区别&am…...

Linux下LED设备驱动开发(LED灯实现闪烁)

文章目录一、配置连接说明二、更新设备树&#xff08;1&#xff09;将led灯引脚添加到pinctrl子系统&#xff08;2&#xff09;设备树中添加LDE灯的设备树节点&#xff08;3&#xff09;编译更新设备树三、驱动开发与测试&#xff08;1&#xff09;编写设备驱动代码&#xff08…...

JavaEE-多线程中wait和notify都有哪些区别?

更多内容请点击了解 本篇文章将详细讲述wait和notify的区别&#xff0c;请往下看 目录 更多内容请点击了解 文章目录 一、wait和notify概念 二、wait()方法详解 三、notify()方法详解 代码如下&#xff1a; 3.1notifyAll()详解 四、wait和sleep的对比 一、wait和notif…...

JavaScript实现列表分页(小白版)

组件用惯了&#xff0c;突然叫你用纯cssJavaScript写一个分页&#xff0c;顿时就慌了。久久没有接触js了&#xff0c;不知道咋写了。本文章也是借与参考做的一个demo案例&#xff0c;小白看了都会的那种。咱们就以ul列表为例进行分页&#xff1a; 首先模拟的数据列表是这样的&a…...

Python调用GPT3.5接口的最新方法

GPT3.5接口调用方法主要包括openai安装、api_requestor.py替换、接口调用、示例程序说明四个部分。 1 openai安装 Python openai库可直接通过pip install openai安装。如果已经安装openai&#xff0c;但是后续提示找不到ChatCompletion&#xff0c;那么请使用命令“pip instal…...

Java开发 - 拦截器初体验

目录 前言 拦截器 什么是拦截器 拦截器和过滤器 Spring MVC的拦截器 Mybatis的拦截器...

【数据仓库-7】-- 使用维度建模的一些缘由

维度建模是一种用于设计数据仓库和商业智能系统的方法。以下是选择维度建模的两类理由。 1.传统方法,有背书且可靠 易于理解和使用:维度建模使用直观的图形和术语,使得非技术人员也能够理解和使用数据仓库和商业智能系统。 快速开发和部署:维度建模是一种迭代开发方法,能…...

【开发实践】在线考试系统(一) 生成错题知识点的思维导图

一、需求分析设计 笔者开发了一个在线考试系统&#xff0c;导师提出一个需求&#xff1a;添加对考试错题相关知识点的总结。 在question表中关联知识点的编号&#xff0c;题目可能关联多个知识点。这里笔者的设计是&#xff0c;只关联一个知识点&#xff0c;便于维护。 下面是知…...

Java Web 实战 17 - 计算机网络之传输层协议(2)

大家好 , 这篇文章继续给大家讲解 TCP 协议当中的一些操作 , 比如 : 滑动窗口、流量控制、拥塞控制、延时应答、捎带应答、面向字节流这几个提升 TCP 效率的操作 . 我们还会给大家分析 TCP 连接出现异常的时候 , 该如何处理 . 最后会将 TCP 和 UDP 进行比较 上一篇文章的链接也…...

MyBatis<3>:动态SQL的使用<if><trim><where><set><foreach>

动态SQL是MyBatis的强大特性之一&#xff0c;能够完成不同条件下不同的sql拼接。参考官方文档&#xff1a;https://mybatis.org/mybatis-3/zh/dynamic-sql.html<if>标签看这个场景&#xff0c;有必填字段 和 非必填字段 &#xff0c;当字段不确定是否传入的时候&#xff…...

【超好懂的比赛题解】暨南大学2023东软教育杯ACM校赛个人题解

title : 暨南大学2023东软教育杯ACM校赛 题解 tags : ACM,练习记录 date : 2023-3-26 author : Linno 文章目录暨南大学2023东软教育杯ACM校赛 题解A-小王的魔法B-苏神的遗憾C-神父的碟D-基站建设E-小王的数字F-Uziの真身G-电子围棋H-二分大法I-丁真的小马朋友们J-单车运营K-超…...

go-zero学习及使用中遇到的问题

go-zero学习及使用中遇到的问题1 go-zero入门--单体服务demo1.1 单体服务【官方示例】1.1.1 创建greet服务1.1.2 目录结构1.1.3 编写逻辑1.1.4 启动并访问服务1.2 修改GET入参1.2.1 去除options限制的入参值1.2.2 重启并访问服务1.3 添加post请求【新增方法】1.3.1 修改 greet/…...

CCF-CSP认证 202303 500分题解

202303-1 田地丈量&#xff08;矩阵面积交&#xff09; 矩阵面积交x轴线段交长度*y轴线段交长度 线段交长度&#xff0c;相交的时候是min右端点-max左端点&#xff0c;不相交的时候是0 #include<bits/stdc.h> using namespace std; int n,a,b,ans,x,y,x2,y2; int f(in…...

板内盘中孔设计狂飙,细密间距线路中招

一博高速先生成员&#xff1a;王辉东大风起兮云飞扬&#xff0c;投板兮人心舒畅。赵理工打了哈欠&#xff0c;伸了个懒腰&#xff0c;看了看窗外&#xff0c;对林如烟说道&#xff1a;“春天虽美&#xff0c;但是容易让人沉醉。如烟&#xff0c;快女神节了&#xff0c;要不今晚…...

面试热点题:回溯算法 递增子序列与全排列 II

前言&#xff1a; 如果你一点也不了解什么叫做回溯算法&#xff0c;那么推荐你看看这一篇回溯入门&#xff0c;让你快速了解回溯算法的基本原理及框架 递增子序列 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两…...

怎么找回回收站删除的文件

我们都知道&#xff0c;电脑文件都是放在桌面上的&#xff0c;单独存放或者一起存放在文件夹里。但总会有已用完或者是没用的文件&#xff0c;这让我们不得不对其进行清理。而清空回收站也是不可避免的。如果出现了清空文件中还有我们需要的文件&#xff0c;怎么找回回收站删除…...

dp-打家劫舍

你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。给定一个代表每个房屋存放金额的非…...

C++预处理连接

目录定义常量字符串前缀定义枚举类型Boost C库中常常使用预处理连接来定义宏和模板类Google开源的C单元测试框架gtest&#xff0c;使用预处理连接技术创建测试用例和测试方法C预处理连接&#xff08;Preprocessor Concatenation&#xff09;是一种宏定义技巧&#xff0c;用于将…...

3、DRF实战总结:基于类的视图APIView, GenericAPIView和GenericViewSet视图集(附源码)

前面介绍了什么是符合RESTful规范的API接口&#xff0c;以及使用了基于函数的视图(FBV)编写了对文章进行增删查改的API。在本篇文章将使用基于类的视图(Class-based View, CBV)重写之前的接口。 参考&#xff1a; 1、Django开发总结&#xff1a;Django MVT与MVC设计模式&…...

免费sem工具/高级seo优化招聘

默认情况下用dw是以普通的text文件打开html.erb文件&#xff0c;这多少让人有点不爽。其实dw打开erb文件也是相当的容易&#xff0c;下面就简单说下在mac os X下如何让dw支持erb文件&#xff1a; 首先找到dw的用户Configuration文件夹位置,注意不是Application中的应用程序里的…...

网站建设销售中遇到的问题/百度左侧排名

本文作者为携程平台UED团队&#xff0c;同时感谢机票、度假、酒店UED团队协同搭建插画系统。对于每一个设计师来说&#xff0c;插画总是让人喜爱又烦恼。喜爱是因为插画具有特殊的表现力、丰富的图形语言、鲜明的个性特征&#xff0c;运用在设计中能让产品更具感染力并打动人心…...

怎么样才算大型网站开发/上海推广seo

年轻的Python横空出世闯入编程语言这个大家庭里面&#xff0c;新生的面孔&#xff0c;面对老大哥们&#xff0c;它该如何走下去呢&#xff1f;前景及应用在我看来&#xff0c;一切充满了未知数&#xff0c;但也代表着无限可能&#xff01;先来看看被人熟知的这些前景及应用吧&a…...

qq刷赞网站如何做分站/网站seo优化步骤

Magic Pairs Problems Link Mean: 已知N、A0、B0&#xff0c;对于给定X、Y&#xff0c;若A0XB0Y能被N整除&#xff0c;则AXBY也能被N整除&#xff0c;求所有的A、B.&#xff08;0<A、B<N) analyse: 这道题目就是先把A0和B0和N都除以他们的最大公约数&#xff0c;然后就…...

php做网站架构图/国外服务器免费ip地址

Description 青子的生日快到了&#xff0c;快斗计划着带青子去游乐场玩。游乐场有好多游戏项目&#xff0c;每个游戏项目都有自己的开始和结束时间。同一时间只能玩一个游戏&#xff0c;前一个游戏结束后可以马上开始下一个游戏。为了让青子过一个愉快的生日&#xff0c;快斗决…...

做淘宝客网站要不要备案/自己有域名怎么建网站

目录前言思路CODE:https://www.luogu.com.cn/problem/CF763A前言 写了我一个小时 卧槽 卡死了我了 一开始以为是 并查集缩点然后 dfs枚举 结果WA了 搞得头疼 然后看了一下题解 &#xff1f; &#xff1f; &#xff1f; &#xff1f; 直接枚举就行&#xff1f; 思路 先处理 出来…...