WPF 常用控件

article/2025/9/22 3:38:01

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常用控件实例


http://chatgpt.dhexx.cn/article/5fY9YMqi.shtml

相关文章

什么是WPF,对WPF的认识

一&#xff0c;什么是WPF WPF&#xff08;Windows Presentation Foundation&#xff09;翻译为中文“Windows呈现基础” 是微软新发布的Vista操作系统的三个核心开发库之一&#xff0c;是微软推出的基于Windows Vista的用户界面框架&#xff0c;属于.NET Framework 3.0的一部分…

关于VRRP

目录 HSRP的定义 小结&#xff1a; VRRP作用: VRRP的好处: 工作原理: VRRP与浮动路由的区别 怎么样让路由器成为主路由器呢? 项目实施 拓扑图 步骤 1、打开二层交换机 2、打开三层交换机 3、打开路由器 4、为两台pc机配置ip地址子网掩码和网关 5、测试连通性 总…

华为交换机RRPP单环配置

华为交换机RRPP单环配置 rrpp相关概念&#xff08;取自华为官方文档&#xff09; 控制VLAN&#xff08;Control VLAN&#xff09;和数据VLAN&#xff08;Data VLAN&#xff09; 控制VLAN是相对于数据VLAN来说的。在RRPP域中&#xff0c;控制VLAN只用来传递RRPP协议报文。与控…

VRRP(12)

VRRP VRRP的作用 提供了局域网上的设备备份机制。VRRP是一种容错协议&#xff0c;它保证当主机的下一跳路由器坏掉时&#xff0c;可以及时由另一台路由器来代替&#xff0c;从而保证通讯的连续性和可靠性。 VRRP工作时会在网络中加入一个含有虚拟IP和虚拟MAC地址的虚拟路由器…

RIP

路由信息协议 RIP(Routing Information Protocol) 是内部网关协议 IGP中最先得到广泛使用的协议。RIP 是一种分布式的基于距离向量的路由选择协议。 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。 RIP是应用层协议。使用UDP数据报传送。…

RRPP 演示实例

RRPP 概念&#xff1a;快速环网保护协议RRPP&#xff08;Rapid Ring Protection Protocol&#xff09;是一个专门应用于以太网环的链路层协议。它在以太网环完整时能够防止数据环路引起的广播风暴&#xff0c;而当以太网环上一条链路断开时能迅速启用备份链路恢复环网上各个节点…

H3C交换机RRPP配置

配置Device A # 创建VLAN 2&#xff5e;30&#xff0c;将这些VLAN都映射到MSTI 1上&#xff0c;并激活MST域的配置。 <DeviceA> system-view[DeviceA] vlan 2 to 30Please wait… Done.[DeviceA] stp region-configuration[DeviceA-mst-region] instance 1 vlan 2 to 3…

H3C RRPP实验

实验拓扑 H3C RRPP实验 图 1-1 注&#xff1a;如无特别说明&#xff0c;描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备&#xff0c;R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备&#xff0c;以此类推&#xff1b;另外&#xff0c;同一网段中&#xff0c;IP …

RRPP 实验

实验拓扑 注&#xff1a;如无特别说明&#xff0c;描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备&#xff0c;R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备&#xff0c;以此类推&#xff1b;另外&#xff0c;同一网段中&#xff0c;IP 地址的主机位为其设备编…

VRRP——VRRP讲解

目录 VRRP作用 VRRP的基本概念 基本信息 优先级 主备关系 VRRP报文 VRRP定时器 VRRP状态 VRRP版本 VRRP基本工作原理 VRRP高级特性 VRRP作用 VRRP为虚拟路由冗余协议 将多个设备接口划分在一起&#xff0c;称为一个备份组&#xff08;有主备关系---优先级高的为主&am…

以太网环网的快速环保护协议:RRPP,配有专属案例,爽歪歪!

你好&#xff0c;这里是网络技术联盟站。 今天给大家带来RRPP协议的介绍以及实验配置&#xff0c;希望对大家有所帮助&#xff01; 文章目录 什么是RRPP协议RRPP协议的功能RRPP协议的优势RRPP配置案例背景介绍网络拓扑RRPP配置步骤步骤 1&#xff1a;启用RRPP协议步骤 2&#…

BS架构和CS架构的优缺点

1、CS、BS架构定义 CS(Client/Server):客户端----服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。它充分利用两端硬件,将任…

BS架构说明以及网页组成

B/S架构 1.B/S框架&#xff0c;意思是前端&#xff08;Browser 浏览器&#xff0c;小程序、app、自己写的&#xff09;和服务器端&#xff08;Server&#xff09;组成的系统的框架结构 2.B/S框架&#xff0c;也可理解为web架构&#xff0c;包含前端、后端、数据库三大组成部分 …

B/S三层体系结构

为什么80%的码农都做不了架构师&#xff1f;>>> ASP.NET的三层结构因为每一层都可以在仅仅更改很少量的代码后&#xff0c;就能放到物理上不同的服务器上使用&#xff0c;因此结构灵活而且性能更佳。此外&#xff0c;每层做些什么其它层是完全看不到的&#xff0c;…

B/S结构和C/S结构

在系统开发的网络结构模式设计时&#xff0c;常常会考虑B/S结构还是C/S结构。生活中&#xff0c;类似于使用浏览器网页进行访问的&#xff0c;就是B/S结构&#xff0c;用户无需安装特定的APP。类似于微信、QQ、王者荣耀等等需要下载APP的&#xff0c;或者电脑中安装的微信、英雄…

B/S结构和C/S结构,以及区别和联系

B/S和C/S都是随着互联网的发展而出现的一种网络结构模式&#xff0c;而其用的非常广泛&#xff0c;在我们生活中都很常见。那它们到底是什么呢&#xff1f;接下来就详细的介绍一下B/S和C/S。 一、B/S结构 B是英文单词“Browser”的首字母&#xff0c;即浏览器的意思&#xff1…

BS架构及其运行原理

一. B/S的概念 B/S&#xff08;Brower/Server,浏览器/服务器&#xff09;模式又称B/S结构&#xff0c;是Web兴起后的一种网络结构模式。Web浏览器是客户端最主要的应用软件。 这种模式统一了客户端&#xff0c;将系统功能实现的核心部分集中到服务器上&#xff0c;简化了系统的…

什么是B/S架构?

目录 一.什么是B/S架构&#xff1f; 二.B/S架构与C/S架构有什么区别&#xff1f; 三.B/S架构的优缺点 四.B/S架构的几种形式 1&#xff1a;客户端-服务器-数据库 2&#xff1a;客户端&#xff0d;web服务器&#xff0d;应用服务器&#xff0d;数据库 3&#xff1a;客户端…

B/S C/S 三层体系结构

C/S结构 即 Client/Server (客户机/服务器) 结构&#xff0c;是大家熟知的软件 系统体系结构&#xff0c;通过将任务合理分配到Client端和Server端&#xff0c;降低了系统的通讯开销&#xff0c;需要安装 客户端才可进行管理操作。 客户端和服务器端的程序不同&#xff0c;用…