发布时间:2025-12-09 19:26:06 浏览次数:4
WPF(1)WPF工程创建
WPF(2)WPF之Image组件
WPF(3)WPF之Button组件
WPF(5)WPF之DataGrid控件
TextBox控件是WPF的文本输入控件,使用户输入录入系统数据的入口之一。有了此控件,用户可以将数据按照软件的流程录入进去。它允许用户输入一行或多行数据。
最简单的使用方法如下:
<Window x:Class="WPF006_TextBox.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:WPF006_TextBox"mc:Ignorable="d"Title="MainWindow" Height="600" Width="400"><StackPanel Margin="10"><TextBox/></StackPanel></Window>效果如下:
如果想要在TextBox控件中预先设定文本的话需要结合TextBox的Text属性
在后台程序中,也可以通过此属性做控件内容上的获取及设置。
当xaml文档中设置了Text属性的值,后台通过代码动态设置Text属性会先执行哪一个呢?
前台代码如下:
<Window x:Class="WPF006_TextBox.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:WPF006_TextBox"mc:Ignorable="d"Title="MainWindow" Height="300" Width="400"><StackPanel Margin="10"><TextBox Name="MyTextBox" Text="你好,TextBox!"/></StackPanel></Window>后台代码如下:
using System.Windows;namespace WPF006_TextBox{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();this.MyTextBox.Text = "这是修改后的!";}}}运行的结果如下:
结果显示如上图,结合之前的内容,我们可以知道。最后执行了后台的代码。原因是
InitializeComponent();方法会初始化组件,在xaml中设置的Text的值也执行过,只不过被后来的后台代码
this.MyTextBox.Text = "这是修改后的!";覆盖过了而已。
当我们把以上两行代码互换位置如下:
后台代码:
using System.Windows;namespace WPF006_TextBox{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){this.MyTextBox.Text = "这是修改后的!";InitializeComponent();}}}效果如下:
就会引发异常,原因是初始化函数并未完成,此时this.MyTextBox还不存在,因此是空指针异常。
所以我们所有的使用控件的逻辑都要放在初始化函数之后调用。
在很多是时候程序需要用户输入大量文字,使用单行的TextBox就有点捉襟见肘了。那么我们就希望有一个控件能拥有这样的能力。而TextBox恰恰也具备这种能力,而且非常简单。
前台代码如下:
后台代码不变
效果如下:
前台代码如下:
后台代码不变
当我们希望文字换行时,我们可以在添加一个属性–AcceptsReturn
该属性默认值是false,表示不接受换行
当属性值设置True时,在光标处按下Enter键即可换行
前台代码:
<Window x:Class="WPF006_TextBox.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:WPF006_TextBox"mc:Ignorable="d"Title="MainWindow" Height="300" Width="400"><StackPanel Margin="10"><TextBox Name="MyTextBox" Text="你好,TextBox!"/><TextBox AcceptsReturn="True" TextWrapping="Wrap"/></StackPanel></Window>效果如图:
好了,本篇文章在不在啰嗦了!如果您感觉OK记得点赞、关注、转发!谢谢!
以上就是今天要讲的有关TextBox控件的内容,若有不足,望大佬能够给予批评与修正!