C# WPF编程-控件

C# WPF编程-控件

概述

在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. 代码设置颜色:
csharp 复制代码
cmd.Background = new SolidColorBrush(Colors.Red);
cmd.Foreground = new SolidColorBrush(Color.FromRgb(red, green, blue));

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

  1. XAML中设置颜色:
xml 复制代码
	方式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类定义的字体相关属性:

代码中下设置字体:

csharp 复制代码
cmd.FontFamily = "Times New Roman";
cmd.FontSize="20";

XAML中设置字体:

xml 复制代码
  <Button Name="cmd" FontFamily="Times New Roman" FontSize="20" FontWeight="Bold">OK</Button>

文本装饰和排版

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

xml 复制代码
    <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将按顺序遍历该列表,尝试在列表中指定一种字体。

csharp 复制代码
<Button FontFamily="Technical Italic, Comic Sans MS, Arial">None Text</Button>

字体嵌入

文本格式化模式

鼠标光标

内容控件

Label(标签)

Button(按钮)

相关推荐
isyangli_blog1 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb2008111 小时前
FastAPI APIRouter
开发语言·python
Benszen1 小时前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆2 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木2 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
杨充2 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法
噜噜噜阿鲁~2 小时前
python学习笔记 | 11.3、面向对象高级编程-多重继承
java·开发语言
basketball6162 小时前
Go 语言从入门到进阶:4. 数组和MAP使用方法总结
开发语言·后端·golang
春生野草3 小时前
反射、Tomcat执行
java·开发语言
雪的季节3 小时前
企业级 Qt 全功能项目
开发语言·数据库·qt