WPF(6)WPF之TextBox控件
系列文章目录
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控件相关推荐
- 【写笔记】WPF 自定义简单的TextBox控件
效果图: 笔记分享: https://www.yuque.com/docs/share/4aac743b-1ff0-42d2-9ec3-c605c145a58e?# <WPF 自定义简单的Tex ...
- C#WPF实现TextBox控件水印效果的两种实现方法
C#WPF实现TextBox控件水印效果的两种实现方法 在WPF实际项目中往往需要在TextBox中加入水印,来告诉使用者输入TextBox中的内容,如下图片所示: 下面介绍两种方式,来添加上图中的水 ...
- WPF C# VS2013 TextBox控件 限制只能输入数字
编码语言:C# 编码平台:VS2013 项目类型:WPF TextBox控件 PreviewKeyDown事件 后台代码 //按键为: 非 ( 大键盘0~9 || 小键盘 0~9 || 退格键 ) ...
- 【小沐学C#】WPF中嵌入web网页控件(WebBrowser、WebView2、CefSharp)
文章目录 1.简介 1.1 WPF简介 1.2 WPF 体系结构 1.3 WPF入门开发 2.WebBrowser 2.1 WebBrowser特点 2.2 WebBrowser常用的属性.方法和事件 ...
- 编程小问题系列(2)——为什么WPF里MediaElement等视频控件不起作用
为什么WPF里MediaElement等视频控件不起作用? 非常可能的原因是因为没有安装Microsoft Windows Media Player 10或者10以上的播放器,MSDN文档里 就写有下 ...
- WPF不同线程之间的控件的访问
WPF不同线程之间的控件是不同访问的,为了能够访问其他线程之间的控件,需要用Dispatcher.Invoke执行一个新的活动即可. 例如: public void SetNotes(string n ...
- WPF 实现 DataGrid/ListView 分页控件
原文:WPF 实现 DataGrid/ListView 分页控件 在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,200 ...
- WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit)
原文 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) Windows Community Toolkit 再次更新到 5.0. ...
- 【C#】wpf自定义calendar日期选择控件的样式
原文:[C#]wpf自定义calendar日期选择控件的样式 首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现 首先上图,看下样式 原理 ...
最新文章
- rtop – 通过SSH监控远程主机
- 收藏|最优论文+代码查找神器,覆盖AI全领域(966个ML任务、8500+论文)
- 开发提交审核流程_小游戏上线发布全流程详解?
- 读书方法(如果努力有用的话,那还要天才干什么!)
- wince 串口调试信息输出
- 嵌入式研究杂记(1)-RISC-V开源CPU
- python图片解析库_python用来获得图片exif信息的库实例分析
- 华为交换机OSPF和BGP知识
- Docker组队学习(一)
- JSK-373 加密【入门】
- Retrofit之Converter简单解析
- 《深入浅出统计学》总结
- linux vi回到末行模式,Linux vi/vim 的命令模式,,编辑模式,末行模式
- 将示波器信号完整数据导入Matlab进行分析
- 基于STM32的智能篮球测温记分记时系统
- 大数据开发岗位的几个方向
- 5G时代来临,欢迎进入《头号玩家》的科幻世界
- 【jQuery】网页文本格式编辑器xheditor
- 到了40的程序员,都何去何从
- 百度推广优化(百度推广优化方法)
热门文章
- 阿里短信本地可以服务器不行_如何选购云服务器更便宜?主流云平台云服务器选购攻略...
- 【Java技术专题】「Guava技术系列」Guava-Collections实战使用相关Guava不一般的集合框架
- 大话数据结构与算法(一)
- recovery怎么刷机,recovery是什么意思
- npm,node更新最新版本
- 【SpringBoot - 整合并操作Oracle数据库教程(手动添加ojdbc驱动)】
- css两个盒子之间只显示一条边框_css如何去掉重叠部分的边框?
- linux文件系统是ntfs吗,Linux下如何使用NTFS文件系统
- wireshark抓包工具的使用
- rtl8723bs/ds 蓝牙和wifi共存造成蓝牙的卡顿解决方案.