C# WPF编程-控件

news2024/10/7 8:28:44

C# WPF编程-控件

  • 概述
    • WPF控件类别包括以下控件:
    • 背景画刷和前景画刷
    • 字体
    • 文本装饰和排版
    • 字体继承
    • 字体替换
    • 字体嵌入
    • 文本格式化模式
    • 鼠标光标
  • 内容控件
    • Label(标签)
    • Button(按钮)

概述

在WPF领域,控件通常被描述为与用户交互的元素,能接收焦点并接受键盘或鼠标输入的元素。

WPF控件类别包括以下控件:

  • 内容控件: 这些控件可包含嵌套的元素。如:Label、Button、ToolTip和ScrollViewer类。
  • 带有标题的内容控件: 这些控件允许添加主要内容部分以及单独标题部分的内容控件。通常用于封装更大的用户界面块。如:TabItem、GroupBox以及Expander类。
  • 文本控件: 允许用户输入文本的控件。如普通文本(TextBox)、密码文本(PasswordBox)以及格式化文本(RichTextBox)。
  • 列表控件: 这些控件在列表中显示项的集合。包括:ListBox和ComboBox类。
  • 基于范围的控件: 这些控件通常只有共同的属性Value,可以使用预先规定范围内的任何数字设置改属性。包括Slider以及ProgressBar类。
  • 日期控件: 此类控件包括两个允许用户选择日期的控件,Calendar和DatePicker。

所有控件都继承自System.Windows.Control类,该类添加了一小部分基本的基础结构:

  • 设置控件内容对齐方式的能力
  • 设置Tab键顺序的能力
  • 支持绘制背景、前景和边框
  • 支持格式化文本内容的尺寸和字体

背景画刷和前景画刷

所有控件都包含背景和前景概念。背景是控件表面,前景是文本。在WPF中分别使用Background和Foreground属性设置这两个区域的颜色。这两个属性处理使用颜色对象,还可以使用更强大的Brush画刷对象:

  • SolidColorBrush:单一颜色画刷。
  • LinearGradientBrush:线性渐变画刷
  • TileBrush:
  1. 代码设置颜色:
cmd.Background = new SolidColorBrush(Colors.Red);
cmd.Foreground = new SolidColorBrush(Color.FromRgb(red, green, blue));

也可以提供Alpha值,Color.FromArgb()方法创建支持透明度的颜色。Alpha值0到255。

  1. XAML中设置颜色:
	方式1:
	< Button Background="Red">确认< /Button>
	
	方式2:
	< Button>确认
		< Button.Background>
			< SolidColorBrush Color="Red">
		< /Button.Background>
	< /Button>
	
	方式3:
	< Button Background="#AAFF0000">确认< /Button>

使用画刷不仅可以设置Background和Foreground属性,还可使用BorderBrush和BorderThickness属性在控件周围绘制边框。

字体

Control类定义的字体相关属性:
在这里插入图片描述
代码中下设置字体:

cmd.FontFamily = "Times New Roman";
cmd.FontSize="20";

XAML中设置字体:

  <Button Name="cmd" FontFamily="Times New Roman" FontSize="20" FontWeight="Bold">OK</Button>

文本装饰和排版

有些元素还可以通过TextDecorations和Typography属性,支持更高级的文本控制。

    <StackPanel>
        <TextBlock TextDecorations="Underline">Underline Text</TextBlock>
        <TextBlock TextDecorations="Baseline">Baseline Text</TextBlock>
        <TextBlock TextDecorations="OverLine">OverLine Text</TextBlock>
        <TextBlock TextDecorations="Strikethrough">Strikethrough Text</TextBlock>
        <TextBlock TextDecorations="None">None Text</TextBlock>
    </StackPanel>

字体继承

当设置任何字体属性时,属性值都会流经嵌套的对象。

字体替换

可以将FontFamily属性设置为有逗号分隔的多个字体选项列表。WPF将按顺序遍历该列表,尝试在列表中指定一种字体。

<Button FontFamily="Technical Italic, Comic Sans MS, Arial">None Text</Button>

字体嵌入

文本格式化模式

鼠标光标

内容控件

Label(标签)

Button(按钮)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1539933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云原生:如何熟悉一个系统

原文地址:https://mp.weixin.qq.com/s/J8eK-qRMkmHEQZ_dVts9aQ?poc_tokenHMA-_mWjfcDmGVW6hXX1xEDDvuJPE3pL9-8uSlyY 导读&#xff1a;本文总结了熟悉系统主要分三部分&#xff1a;业务学习、技术学习、实战。每部分会梳理一些在学习过程中需要解答的问题&#xff0c;这些问题…

一笔画--PTA

文章目录 题目描述思路AC代码 题目描述 输入样例1 3 2 1 2 2 3 输出样例1 Y输入样例2 4 3 1 2 1 3 1 4 输出样例2 N输入样例3 1 0 输出样例3 Y思路 dfs 、欧拉通路、欧拉回路的判定 前导知识 欧拉通路、欧拉回路、欧拉图 无向图&#xff1a; ①设G是连通无向图&#xff0c;则称…

在使用 Java 数据采集时,有哪些需要注意的问题?

近年来&#xff0c;随着网络数据的爆发式增长&#xff0c;爬虫技术在信息收集和数据分析领域发挥着重要作用。而Java作为一种强大的编程语言&#xff0c;其爬虫库和框架也日益受到开发者的青睐。然而&#xff0c;使用Java爬虫也存在一些需要注意的问题。 首先&#xff0c;是合…

【排序算法】实现快速排序值(霍尔法三指针法挖坑法优化随即选key中位数法小区间法非递归版本)

文章目录 &#x1f4dd;快速排序&#x1f320;霍尔法&#x1f309;三指针法&#x1f320;挖坑法✏️优化快速排序 &#x1f320;随机选key&#x1f309;三位数取中 &#x1f320;小区间选择走插入&#xff0c;可以减少90%左右的递归&#x1f309; 快速排序改非递归版本&#x1…

2024阿里云2核2G服务器租用价格99元和61元一年

阿里云2核2G服务器配置优惠价格61元一年和99元一年&#xff0c;61元是轻量应用服务器2核2G3M带宽、50G高效云盘&#xff1b;99元服务器是ECS云服务器经济型e实例ecs.e-c1m1.large&#xff0c;2核2G、3M固定带宽、40G ESSD entry系统盘&#xff0c;阿里云活动链接 aliyunfuwuqi.…

STM32 | Systick定时器(第四天)

STM32 第四天 一、Systick定时器 1、定时器概念 定时器:是芯片内部用于计数从而得到时长的一种外设。 定时器定时长短与什么有关???(定时器定时长短与频率及计数大小有关) 定时器频率换算单位:1GHZ=1000MHZ=1000 000KHZ = 1000 000 000HZ 定时器定时时间:计数个数…

Github 2024-03-23 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-23统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero General Public Li…

使用Intellij idea编写Spark应用程序(Scala+SBT)

使用Intellij idea编写Spark应用程序(ScalaSBT) 对Scala代码进行打包编译时&#xff0c;可以采用Maven&#xff0c;也可以采用SBT&#xff0c;相对而言&#xff0c;业界更多使用SBT。 运行环境 Ubuntu 16.04 Spark 2.1.0 Intellij Idea (Version 2017.1) 安装Scala插件 安…

SpringBoot源码探险 —— SpringBoot启动流程详解

一&#xff0c;SpringBoot启动流程 本人使用的SpringBootParent版本为 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.1</version><relativePath/>…

STM32之HAL开发——RCC外设CubeMX配置时钟

RCC外设介绍 RCC是Reset and Clock Control (复位和时钟控制)的缩写&#xff0c;它是STM32内部的一个重要外设&#xff0c;负责管理各种时钟源和时钟分频&#xff0c;以及为各个外设提供时钟使能。RCC模块可以通过寄存器操作或者库函数来配置。 RCC是复位和时钟控制模块&#…

强化学习之父Richard Sutton:通往AGI的另一种可能

2019年&#xff0c;强化学习之父、阿尔伯塔大学教授Richard Sutton发表了后来被AI领域奉为经典的The Bitter lesson&#xff0c;这也是OpenAI研究员的必读文章。 在这篇文章中&#xff0c;Richard指出&#xff0c;过去 70 年来&#xff0c;AI 研究的一大教训是过于重视人类既有…

是德科技keysight DSOX3024T示波器

181/2461/8938产品概述&#xff1a; DSOX3024T 示波器 要特性与技术指标 使用电容触摸屏进行简洁的触控操作&#xff1a; •提高调试效率 •触控设计可以简化文档记录 •使用起来就像您喜欢的智能手机或平板电脑一样简单 使用 MegaZoom IV 技术揭示偶发异常&#xff1a; •超快…

区块链技术下的新篇章:DAPP与消费增值的深度融合

随着区块链技术的持续演进&#xff0c;去中心化应用&#xff08;DAPP&#xff09;正逐渐受到人们的瞩目。DAPP&#xff0c;这种在分布式网络上运行的应用&#xff0c;以其去中心化、安全可靠、透明公开的特性&#xff0c;为用户提供了更为便捷和安全的消费体验。近年来&#xf…

ReactNative项目构建分析与思考之RN组件化

传统RN项目对比 ReactNative项目构建分析与思考之react-native-gradle-plugin ReactNative项目构建分析与思考之native_modules.gradle ReactNative项目构建分析与思考之 cli-config 在之前的文章中&#xff0c;已经对RN的默认项目有了一个详细的分析&#xff0c;下面我们来…

K8S之DaemonSet控制器

DaemonSet控制器 概念、原理解读、应用场景概述工作原理典型的应用场景介绍DaemonSet 与 Deployment 的区别 解读资源清单文件实践案例 概念、原理解读、应用场景 概述 DaemonSet控制器能够确保K8S集群所有的节点都分别运行一个相同的pod副本&#xff1b; 当集群中增加node节…

如何打造智慧公厕?发挥数据要素价值构建新型智慧公厕

公共厕所是城市建设和管理中不可或缺的一环。然而&#xff0c;长期以来&#xff0c;公厕的管理难题一直困扰着城市管理者和市民。为了解决这一问题&#xff0c;新时期以信息化为引领的智慧公厕建设应运而生。智慧公厕建设的推进需要技术融合、业务融合和数据融合&#xff0c;以…

C语言与sqlite3入门

c语言与sqlite3入门 1 sqlite3数据类型2 sqlite3指令3 sqlite3的sql语法3.1 创建表create3.2 删除表drop3.3 插入数据insert into3.4 查询select from3.5 where子句3.6 修改数据update3.7 删除数据delete3.8 排序Order By3.9 分组GROUP BY3.10 约束 4 c语言执行sqlite34.1 下载…

jmeter使用方法---自动化测试

HTTP信息头管理器 一个http请求会发送请求到服务器&#xff0c;请求里面包含&#xff1a;请求头、请求正文、请求体&#xff0c;请求头就是信息头Authorization头的主要用作http协议的认证。 Authorization的作用是当客户端访问受口令保护时&#xff0c;服务器端会发送401状态…

Head First Design Patterns -模板方法模式

什么是模板方法模式 在一个方法中定义一个算法的骨架&#xff0c;而把一些步骤延迟到子类。模板方法使得子类可以在不改变算法结构的情况下&#xff0c;重新定义算法的某些步骤。 这些算法步骤中的一个或者多个被定义为抽象的&#xff0c;由子类实现。 类图 代码 书中用泡茶和…

鸿蒙开发实战:网络请求库【axios】

简介 [Axios] &#xff0c;是一个基于 promise 的网络请求库&#xff0c;可以运行 node.js 和浏览器中。本库基于[Axios]原库v1.3.4版本进行适配&#xff0c;使其可以运行在 OpenHarmony&#xff0c;并沿用其现有用法和特性。 http 请求Promise APIrequest 和 response 拦截器…