系列文章目录

WPF(1)WPF工程创建
WPF(2)WPF之Image组件
WPF(3)WPF之Button组件
WPF(5)WPF之DataGrid控件


文章目录

  • 系列文章目录
  • TextBox控件的基本使用
  • 一、什么是TextBox?
  • 二、TextBox的使用
    • 1.单行TextBox
    • 2.Text属性前台与后台的运行时机
    • 3.多行文本框
      • 3.1 换行属性AcceptsReturn
  • 总结

TextBox控件的基本使用


一、什么是TextBox?

TextBox控件是WPF的文本输入控件,使用户输入录入系统数据的入口之一。有了此控件,用户可以将数据按照软件的流程录入进去。它允许用户输入一行或多行数据。

二、TextBox的使用

1.单行TextBox

最简单的使用方法如下:

<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属性

在后台程序中,也可以通过此属性做控件内容上的获取及设置。

2.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();

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还不存在,因此是空指针异常。
所以我们所有的使用控件的逻辑都要放在初始化函数之后调用。

3.多行文本框

在很多是时候程序需要用户输入大量文字,使用单行的TextBox就有点捉襟见肘了。那么我们就希望有一个控件能拥有这样的能力。而TextBox恰恰也具备这种能力,而且非常简单。

前台代码如下:
后台代码不变

<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 TextWrapping="Wrap"/></StackPanel>
</Window>

效果如下:

前台代码如下:
后台代码不变

<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 TextWrapping="Wrap"/></StackPanel>
</Window>

3.1 换行属性AcceptsReturn

当我们希望文字换行时,我们可以在添加一个属性–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控件的内容,若有不足,望大佬能够给予批评与修正!

WPF(6)WPF之TextBox控件相关推荐

  1. 【写笔记】WPF 自定义简单的TextBox控件

    效果图: 笔记分享: https://www.yuque.com/docs/share/4aac743b-1ff0-42d2-9ec3-c605c145a58e?# <WPF 自定义简单的Tex ...

  2. C#WPF实现TextBox控件水印效果的两种实现方法

    C#WPF实现TextBox控件水印效果的两种实现方法 在WPF实际项目中往往需要在TextBox中加入水印,来告诉使用者输入TextBox中的内容,如下图片所示: 下面介绍两种方式,来添加上图中的水 ...

  3. WPF C# VS2013 TextBox控件 限制只能输入数字

    编码语言:C# 编码平台:VS2013 项目类型:WPF TextBox控件  PreviewKeyDown事件 后台代码 //按键为: 非 ( 大键盘0~9 || 小键盘 0~9 || 退格键 ) ...

  4. 【小沐学C#】WPF中嵌入web网页控件(WebBrowser、WebView2、CefSharp)

    文章目录 1.简介 1.1 WPF简介 1.2 WPF 体系结构 1.3 WPF入门开发 2.WebBrowser 2.1 WebBrowser特点 2.2 WebBrowser常用的属性.方法和事件 ...

  5. 编程小问题系列(2)——为什么WPF里MediaElement等视频控件不起作用

    为什么WPF里MediaElement等视频控件不起作用? 非常可能的原因是因为没有安装Microsoft Windows Media Player 10或者10以上的播放器,MSDN文档里 就写有下 ...

  6. WPF不同线程之间的控件的访问

    WPF不同线程之间的控件是不同访问的,为了能够访问其他线程之间的控件,需要用Dispatcher.Invoke执行一个新的活动即可. 例如: public void SetNotes(string n ...

  7. WPF 实现 DataGrid/ListView 分页控件

    原文:WPF 实现 DataGrid/ListView 分页控件 在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,200 ...

  8. WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit)

    原文 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) Windows Community Toolkit 再次更新到 5.0. ...

  9. 【C#】wpf自定义calendar日期选择控件的样式

    原文:[C#]wpf自定义calendar日期选择控件的样式 首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现 首先上图,看下样式 原理 ...

最新文章

  1. rtop – 通过SSH监控远程主机
  2. 收藏|最优论文+代码查找神器,覆盖AI全领域(966个ML任务、8500+论文)
  3. 开发提交审核流程_小游戏上线发布全流程详解?
  4. 读书方法(如果努力有用的话,那还要天才干什么!)
  5. wince 串口调试信息输出
  6. 嵌入式研究杂记(1)-RISC-V开源CPU
  7. python图片解析库_python用来获得图片exif信息的库实例分析
  8. 华为交换机OSPF和BGP知识
  9. Docker组队学习(一)
  10. JSK-373 加密【入门】
  11. Retrofit之Converter简单解析
  12. 《深入浅出统计学》总结
  13. linux vi回到末行模式,Linux vi/vim 的命令模式,,编辑模式,末行模式
  14. 将示波器信号完整数据导入Matlab进行分析
  15. 基于STM32的智能篮球测温记分记时系统
  16. 大数据开发岗位的几个方向
  17. 5G时代来临,欢迎进入《头号玩家》的科幻世界
  18. 【jQuery】网页文本格式编辑器xheditor
  19. 到了40的程序员,都何去何从
  20. 百度推广优化(百度推广优化方法)

热门文章

  1. 阿里短信本地可以服务器不行_如何选购云服务器更便宜?主流云平台云服务器选购攻略...
  2. 【Java技术专题】「Guava技术系列」Guava-Collections实战使用相关Guava不一般的集合框架
  3. 大话数据结构与算法(一)
  4. recovery怎么刷机,recovery是什么意思
  5. npm,node更新最新版本
  6. 【SpringBoot - 整合并操作Oracle数据库教程(手动添加ojdbc驱动)】
  7. css两个盒子之间只显示一条边框_css如何去掉重叠部分的边框?
  8. linux文件系统是ntfs吗,Linux下如何使用NTFS文件系统
  9. wireshark抓包工具的使用
  10. rtl8723bs/ds 蓝牙和wifi共存造成蓝牙的卡顿解决方案.