赞
踩
目录
TextBlock是用于显示文本的控件,相比Label,它提供了更多的功能和灵活性。
TextBlock的特点和用法:
TextBlock提供了丰富的属性来控制文本的外观和布局。下面是对这些属性的简要说明:
例子:
- <Window x:Class="WpfApp2.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:WpfApp2"
- mc:Ignorable="d"
- Title="学习之路" Height="450" Width="800">
- <WrapPanel Margin="10">
- <!-- 使用Label显示静态文本 -->
- <TextBlock Text="这是一个TextBlock文字块" Margin="5"/>
-
- <!-- 粗体、斜体、字体、字号 -->
- <TextBlock FontWeight="Bold" Text="粗体文字" Margin="5"/>
- <TextBlock FontStyle="Italic" Text="斜体文字" Margin="5"/>
- <TextBlock FontFamily="Microsoft YaHei UI" Text="微软雅黑" Margin="5"/>
- <TextBlock FontSize="30" Text="大号字体" Margin="5"/>
-
- <!-- 文本颜色、背景颜色 -->
- <TextBlock Foreground="Red" Text="红色文字" Margin="5"/>
- <TextBlock Foreground="Yellow" Background="Red" Text="底色文字" Margin="5"/>
-
- <!-- 内间距 -->
- <TextBlock Foreground="Yellow" Background="Red" Text="内间距文字" Padding="10" Margin="5"/>
-
- <!-- 使用Run设置不同颜色的文本 -->
- <TextBlock Background="LightGray" Height="25" Margin="5">
- <Run Foreground="Red">这行文字</Run>
- <Run Foreground="Green">由三部分</Run>
- <Run Foreground="Blue">组成</Run>
- </TextBlock>
-
- <!-- 文本换行 -->
- <Grid Width="150" Height="100" Background="LightGoldenrodYellow" Margin="5">
- <TextBlock TextWrapping="Wrap" Margin="10" Text="这段文字体现了文字的文本换行属性TextWrapping"/>
- </Grid>
-
- <!-- 使用Run设置复杂样式的文本 -->
- <Grid Margin="5">
- <TextBlock Width="320" Height="100" FontSize="15" FontFamily="微软雅黑" FontWeight="Black"
- Foreground="#dddddd" Background="Teal" TextAlignment="Center" TextWrapping="Wrap"
- TextTrimming="CharacterEllipsis" Margin="10" Padding="5">
- <Run Foreground="#CDB632" TextDecorations="Underline">滚滚长江东逝水,浪花淘尽英雄。</Run>
- <Run>白发渔樵江渚上,惯看秋月春风。</Run>
- </TextBlock>
- </Grid>
- </WrapPanel>
- </Window>
TextBox 控件是 WPF 中用于接受用户输入文本的常用控件之一。它继承自 TextBoxBase,而 TextBoxBase 则继承自 Control。
TextBoxBase 基类提供了以下属性:
TextBoxBase 基类还提供了以下事件:
TextBox 类还提供了以下属性:
TextBox文本框本身没有任务事件,都是继承父类的事件。
例子:
- <Window x:Class="WpfApp2.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:WpfApp2"
- mc:Ignorable="d"
- Title="学习之路" Height="450" Width="800">
- <Grid Margin="20">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="Auto"/>
- </Grid.RowDefinitions>
-
- <!-- 第一个文本框 -->
- <TextBox x:Name="textBox1" Grid.Row="0" Margin="5" Width="200" TextAlignment="Center" Text="请输入姓名"
- GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus"/>
-
- <!-- 只读文本框 -->
- <TextBox x:Name="textBox2" Grid.Row="1" Margin="5" Width="200" Text="只读文本框" IsReadOnly="True"/>
-
- <!-- 可以输入多行文本的文本框 -->
- <TextBox x:Name="textBox3" Grid.Row="2" Margin="5" Width="200" Height="80" TextWrapping="Wrap"
- Text="这是一个可以输入多行文本的 TextBox 控件,你可以在这里输入多行文本。"
- GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus"/>
-
- <!-- 限制输入长度的文本框 -->
- <TextBox x:Name="textBox4" Grid.Row="3" Margin="5" Width="200" MaxLength="10" Text="最多输入10个字符"
- GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus"/>
- </Grid>
- </Window>
- using System.Windows;
- using System.Windows.Controls;
-
- namespace WpfApp2
- {
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- }
-
- private void TextBox_GotFocus(object sender, RoutedEventArgs e)
- {
- TextBox? textBox = sender as TextBox;
- if (textBox != null)
- {
- // 清空文本框
- textBox.Text = "";
- }
- }
-
- private void TextBox_LostFocus(object sender, RoutedEventArgs e)
- {
- TextBox? textBox = sender as TextBox;
- if (textBox != null)
- {
- // 还原文本框
- if (textBox == textBox1)
- {
- textBox.Text = "请输入姓名";
- }
- else if (textBox == textBox3)
- {
- textBox.Text = "这是一个可以输入多行文本的 TextBox 控件,你可以在这里输入多行文本。";
- }
- else if (textBox == textBox4)
- {
- textBox.Text = "最多输入10个字符";
- }
- }
- }
- }
- }
RichTextBox 提供了比 TextBox 更丰富的文档编辑功能。它允许用户创建和编辑包含格式、图像、超链接等丰富内容的文档。与简单的 TextBox 不同,RichTextBox 具有更多的属性、方法和事件,使用户能够更灵活地编辑文本内容。
RichTextBox 控件的结构定义包含以下重要成员:
构造函数:
属性:
方法:
其他成员:
例子:
- <Window x:Class="WpfApp2.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:WpfApp2"
- mc:Ignorable="d"
- Title="学习之路" Height="450" Width="800">
- <Grid>
- <RichTextBox x:Name="richTextBox" Margin="10">
- <FlowDocument>
- <Paragraph>
- <Run FontWeight="Bold">这是一个 RichTextBox 示例</Run>
- </Paragraph>
- <Paragraph>
- <Run>RichTextBox 在 WPF 中提供了先进的文本编辑功能。</Run>
- </Paragraph>
- <Paragraph>
- <Run>您可以在 RichTextBox 中添加中文文本,并且可以使用不同的字体、样式、颜色等。</Run>
- </Paragraph>
- </FlowDocument>
- </RichTextBox>
- </Grid>
- </Window>
ToolTip 控件继承自 ContentControl,用于显示提示信息。但ToolTip 不能单独存在于 WPF 的视觉树上,必须依附于另一个控件。当鼠标移动到依附的控件上方并悬停一段时间时,ToolTip 将显示其内容。ToolTip 的内容可以是任何类型,包括文本、图像、甚至其他控件。要为控件添加 ToolTip,可以使用控件的 ToolTip 属性,并设置其内容为想要显示的内容。
ToolTip控件的主要成员包括:
属性:
事件:
例子:
- <Window x:Class="WpfApp2.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:WpfApp2"
- mc:Ignorable="d"
- Title="学习之路" Height="450" Width="800">
- <Grid>
- <!-- 定义一个按钮,并设置ToolTip -->
- <Button Content="Hover Me" HorizontalAlignment="Center" VerticalAlignment="Center">
- <Button.ToolTip>
- <!-- ToolTip 的内容可以是任意的,这里设置为一个文本字符串 -->
- <ToolTip Content="This is a ToolTip."/>
- </Button.ToolTip>
- </Button>
- </Grid>
- </Window>
Popup控件在WPF中用于在指定的元素或窗体中弹出一个具有任意内容的窗口。opup继承于FrameworkElement,算得上是独门独户的控件,因为大多数控件都是从Shape、Control或Panel三个类继承而来。与ToolTip不同,Popup可以显示更复杂的内容,包括自定义的用户界面。Popup通常用于创建自定义的弹出菜单、弹出提示、上下文菜单等交互式功能。
下面是对Popup控件主要属性和事件的说明:
属性成员:
事件成员:
例子:
- <Window x:Class="WpfApp2.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:WpfApp2"
- mc:Ignorable="d"
- Title="学习之路" Height="450" Width="800">
- <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
- <CheckBox x:Name="checkbox" Content="显示菜单" Height="30" Margin="5" ToolTip="显示菜单" Checked="checkbox_Checked"/>
- <Popup Name="myPopup"
- IsOpen="{Binding IsChecked, ElementName=checkbox}"
- PlacementTarget="{Binding ElementName=checkbox}"
- StaysOpen="True">
- <Border BorderThickness="1" Background="LightBlue">
- <StackPanel>
- <Button Content="选项 1" Click="MenuItem_Click"/>
- <Button Content="选项 2" Click="MenuItem_Click"/>
- <Button Content="选项 3" Click="MenuItem_Click"/>
- </StackPanel>
- </Border>
- </Popup>
- </StackPanel>
- </Window>
- using System.Windows;
- using System.Windows.Controls;
-
- namespace WpfApp2
- {
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- }
-
- private void MenuItem_Click(object sender, RoutedEventArgs e)
- {
- Button clickedButton = sender as Button; // 获取被点击的按钮
-
- // 根据按钮的内容执行不同的操作或显示不同的信息
- switch (clickedButton.Content.ToString())
- {
- case "选项 1":
- MessageBox.Show("选项 1 被点击了");
- myPopup.IsOpen = false; // 选择选项后关闭弹出菜单
- break;
- case "选项 2":
- MessageBox.Show("选项 2 被点击了");
- myPopup.IsOpen = false; // 选择选项后关闭弹出菜单
- break;
- case "选项 3":
- MessageBox.Show("选项 3 被点击了");
- myPopup.IsOpen = false; // 选择选项后关闭弹出菜单
- break;
- default:
- // 默认情况下,如果按钮内容不匹配任何选项,显示默认信息
- MessageBox.Show("未知选项被点击了");
- break;
- }
- }
-
- // checkbox_Checked事件处理程序
- private void checkbox_Checked(object sender, RoutedEventArgs e)
- {
- CheckBox? checkBox = sender as CheckBox;
- if (checkBox.IsChecked == true)
- {
- myPopup.IsOpen = true; // 当复选框被选中时,打开Popup
- }
- else
- {
- myPopup.IsOpen = false; // 当复选框被取消选中时,关闭Popup
- }
- }
-
- }
- }
Image控件是用于显示图像的控件,它继承自FrameworkElement基类。可以使用Image控件来显示各种图像格式,如.bmp、.gif、.ico、.jpg、.png、.wdp 和 .tiff。
在加载.gif动画图片时,WPF默认只显示第一帧。如果需要在WPF中显示.gif动画,可以通过使用第三方库,例如WpfAnimatedGif库来实现。这个库可以让WPF中显示.gif动画图片,而不仅仅是第一帧。您可以通过NuGet来安装WpfAnimatedGif库。
1、StretchDirection
说明:枚举类型,表示图像在缩放时的方向条件。可以是以下值之一:
2、Stretch
说明:枚举类型,表示图像的缩放模式。可以是以下值之一:
3、Source 说明:图像的源,类型为ImageSource。
4、BaseUri 说明:获取或设置图像的基本统一资源标识符(URI)。
例子:
- <Window x:Class="WpfApp2.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:WpfApp2"
- mc:Ignorable="d"
- Title="学习之路" Height="450" Width="800">
- <Grid>
- <Image Width="200" Height="150" Stretch="Uniform" Source="/Images/meimei.png" />
- </Grid>
- </Window>
注意:一定要将图片属性改成始终复制
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。