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(按钮)

相关推荐
热心网友俣先生几秒前
2026年第二十三届五一数学建模竞赛C题超详细解题思路+各问题可用模型推荐+部分模型结果展示
c语言·开发语言·数学建模
01漫游者5 分钟前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript
IGAn CTOU6 分钟前
Java高级开发进阶教程之系列
java·开发语言
csbysj202013 分钟前
SQL NULL 函数详解
开发语言
其实防守也摸鱼16 分钟前
CTF密码学综合教学指南--第三章
开发语言·网络·python·安全·网络安全·密码学
NGSI vimp16 分钟前
Java进阶——如何查看Java字节码
java·开发语言
We་ct1 小时前
深度剖析浏览器跨域问题
开发语言·前端·浏览器·跨域·cors·同源·浏览器跨域
He少年1 小时前
【AI 辅助案例分享】
人工智能·c#·编辑器·ai编程
skywalk81631 小时前
在考虑双轨制,即在中文语法的基础上,加上数学公式的支持,这样像很多计算将更加简单方便,就像现在的小学数学课本里面一样,比如:定x=2*x + 1
开发语言
小书房1 小时前
Kotlin的by
android·开发语言·kotlin·委托·by