精华内容
下载资源
问答
  • wpf获取textbox的值
    2022-07-29 15:36:37

    项目场景:

    初始化一个WPF页面后需要让其中一个TextBox获取焦点


    问题描述

    初始化一个WPF页面后需要在ViewModel中进行设置让其中一个TextBox获取焦点,但是用textBox1.Focusable = true;无效。

    最后改为Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() => textBox1.Focus()));后实现预想效果

    Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() => textBox1.Focus()));

    更多相关内容
  • 主要为大家详细介绍了WPF TextBox实现按字节长度限制输入功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 1、首先获取DPI,系统的显示缩放影响Width dpiInfo = VisualTreeHelper....var formattedText = new FormattedText("文本", System.Globalization.CultureInfo.InvariantCulture, FlowDirection.LeftToRight, ...

    1、首先获取DPI,系统的显示缩放影响Width

    dpiInfo = VisualTreeHelper.GetDpi(this);

    2、根据文字的字体、大小等等因素获取像素宽度

    var formattedText = new FormattedText("文本值", System.Globalization.CultureInfo.InvariantCulture,
                          FlowDirection.LeftToRight,
                          new Typeface(this.TextBlockName.FontFamily,
                          this.TextBlockName.FontStyle,
                          this.TextBlockName.FontWeight,
                          this.TextBlockName.FontStretch),
                          this.TextBlockName.FontSize,
                          Brushes.Black, dpiInfo.PixelsPerDip);

    控件内容的宽度:formattedText.WidthIncludingTrailingWhitespace;

    TextBlockName是控件的名称

    展开全文
  • WPF(6)WPFTextBox控件

    千次阅读 2022-04-09 22:37:51
    WPF(1)WPF工程创建 WPF(2)WPF之Image组件 WPF(5)WPF之DataGrid控件 文章目录系列文章目录TextBox控件的基本使用一、什么是TextBox?二、TextBox的使用1.单行TextBox2.Text属性前台与后台的运行时机3.多行...

    系列文章目录

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



    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 控件专题 TextBox控件详解

    1、TextBox 介绍

        TextBox :文本输入框控件,是WPF中最基本的文字输入控件。它允许最终用户在一行、对话输入、或多行编写,就像是个编辑器。

        尝试在文本框里鼠标右击。你会得到一个选项菜单,允许你和Windows剪贴板一块使用这个TextBox。默认的撤销和重做的键盘快捷方式(Ctrl + Z 和 Ctrl + Y)也应该是起作用的,并且所有这些功能你能够不受限制的使用。

      特别要注意:
        TextBox 具有对浮泡 MouseUp 和 MouseDown 事件的内置处理。 因此,将不调用侦 MouseUp 听的自定义事件处理程序或 MouseDown 从中 TextBox 侦听的事件。 如果需要响应这些事件,请改为侦听隧道 PreviewMouseUp 和 PreviewMouseDown 事件,或将处理程序注册到 HandledEventsToo 参数 (后一个选项只能通过代码) 使用。 请勿标记所处理的事件,除非有意禁用 TextBox 对这些事件的本机处理,并且请注意,这对控件的 UI 有显著影响。    

    **************************************************************************************************************

    2、常用属性介绍

        Background:背景;    BorderBrush:边框背景的颜色;    BorderThickness:边框宽度;
        
        CanRedo:是否可重做最新的撤消操作;    CanUndo:是否可撤消最新的操作;
        
        CaretIndex:获取或设置插入符号的插入位置索引。
        
        FlowDirection:获取或设置文本和其他用户界面 (UI) 元素在控制其布局的任何父元素内流动的方向。
        
        Focusable:焦点获取;    FontWeight:字体的粗细;Foreground:前景色;
        
        FontFamily:字体样式;    FontSize:字体大小;    FontStretch:字体在屏幕上紧缩或加宽的程度。
        
        HorizontalAlignment/VerticalAlignment:获取或设置在父元素中组合此元素时所应用的水平对齐特征/垂直对齐特征。
        
        HorizontalContentAlignment/VerticalContentAlignment:获取或设置控件内容的水平对齐方式/垂直对齐方式。
        
        HorizontalScrollBarVisibility/VerticalScrollBarVisibility:是否显示水平滚动条/垂直滚动条;
        
        HorizontalOffset/VerticalOffset:获取和设置水平滚动条的位置/垂直滚动条的位置;
        
        IsEnabled:使能,是否可用;    IsReadOnly:对用户而言是否只读;
        
        IsUndoEnabled:是否支持撤销功能;    LineCount:文本总行数;
        
        MaxLength:在文本框中手动输入的最大字符数。
        
        MaxLines/MinLines:最大可见行数/最小行数。
        
        Name:元素标识名称;    Opacity:透明度;
        
        SelectedText:文本框中当前选择的内容。

        SelectionBrush:突出显示选定文本的画笔。
        
        SelectionLength:文本框中当前选择的字符数。

        SelectionOpacity:选择文本的透明度。

        SelectionStart:当前选择的起始位置的字符索引。

        SelectionTextBrush:选中文本的颜色;
        
        Text:文本框的文本内容。
        
        TextAlignment:文本框内容的水平对齐方式。
        
        TextWrapping:文本框中文本的换行方式。

    **************************************************************************************************************

    3、具体代码示例

    <StackPanel Margin="10">
    	<!--添加一个名为txtbox1的TextBox,外边距为10、宽度200、高度35、水平居中、垂直居中-->
    	<TextBox x:Name="txtbox1" Margin="10" Width="200" Height="35" HorizontalAlignment="Center" VerticalAlignment="Center" >
    		秋风清,秋月明,落叶聚还散,寒鸦栖复惊,相思相见知何日,此时此夜难为情。
    	</TextBox>
    	
    	<!--添加一个名为txtbox2的TextBox,宽度200、高度80、水平居左、垂直居中、前景色为OrangeRed、
    	背景色为Wheat、边框颜色为Cyan,边框宽度为1,文本内容水平居中垂直居中-->
    	<TextBox x:Name="txtbox2" Margin="10 0 10 0" Width="200" Height="80" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="OrangeRed"
    			 Background="Wheat" BorderBrush="Cyan" BorderThickness="1" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
    			 TextWrapping="Wrap">
    		秋风清,秋月明,落叶聚还散,寒鸦栖复惊,相思相见知何日,此时此夜难为情。
    	</TextBox>
    
    	<!--添加一个名为txtbox3的TextBox,宽度200、高度60、水平居左、垂直居中、前景色为OrangeRed、
    	背景色为Wheat、文本内容水平居中垂直居上、选中文本的颜色为YellowGreen,透明为0.5-->
    	<TextBox x:Name="txtbox3" Width="200" Height="60" HorizontalAlignment="Right" VerticalAlignment="Center" Foreground="OrangeRed"
    			 Background="Wheat"  HorizontalContentAlignment="Center" VerticalContentAlignment="Top"
    			  TextDecorations="Underline"  SelectionBrush="YellowGreen" SelectionOpacity="0.5">
    		秋风清,秋月明,落叶聚还散,寒鸦栖复惊,相思相见知何日,此时此夜难为情。
    	</TextBox>
    </StackPanel>

    **************************************************************************************************************

    4、效果图

    **************************************************************************************************************

    5、总结和扩展

        TextBox:通过改写模板样式,可以实现水印输入框,密码框,以及各式各样的输入框。

        AcceptsReturn决定了文本框是多行的,当你按下回车键时,换到下一行。TextWrapping使文字到达右边界时自动切换到下一行。

    **************************************************************************************************************

    展开全文
  • 键盘响应代码: private void textBox_KeyDown(object sender, KeyEventArgs e) { string strMessage = "textBox_KeyDown Event:" + e.RoutedEvent + " " + "Key:" + e.Key; if(listBox!=null) { ...
  • WPFTextBox绑定变量

    千次阅读 2021-03-18 18:36:32
    WPFTextBox绑定变量为什么要将TextBox绑定到变量第一步 前端TextBox绑定第二步 新建绑定类第三步 添加触发函数第四步 绑定类添加代码第五步 数据源的指定第六步 绑定变量的调用 为什么要将TextBox绑定到变量 开发...
  • WPFTextBox获得焦点

    千次阅读 2020-05-16 09:36:50
    textBox.Focus();或 Keyboard.Focus(textBox)无效的时候,试试下面方法: this.Dispatcher.BeginInvoke(DispatcherPriority.Background,(Action)(() => { Keyboard.Focus(textBox); })); 实测有效 ...
  • WPF 入门教程 TextBox详解

    千次阅读 2021-09-24 18:09:22
    TextBox控件是WPF中最基本的文字输入控件。它允许最终用户在一行、对话输入、或多行编写,就像是个编辑器。 单行TextBox TextBox控件非常常用。你可以不使用任何属性,就能有一个完整并可编辑的文本字段。这里有一...
  • WPFTextBox只输入数字

    2019-10-19 12:21:12
    1、首先添加一个textbox,然后添加上去,一下修改的时候name属性并没有修改,所以还是labe,其中一句很重要的话就是要禁止输入法,否则当用复合键的时候回提交给输入法的Process来处理 <TextBoxx:Name="labe3...
  • // 绑定txtBox组件获取焦点事件的函数 this.txtUserName.GotFocus += new RoutedEventHandler(txtUserName_GotFocus);// 用户名文本框 this.pwdPassword.GotFocus += new RoutedEventHandler(pwdPassword_GotFocus...
  • WPF遍历TextBox

    千次阅读 2018-01-03 15:10:12
    最近本菜鸟在学习WPF 想到Winform中的TextBox 遍历也就想到了 WPF中的 空间遍历,在网络上搜索了好多方法,感觉还是这个方法比较简单  foreach (UIElement element in ca.Children)  {  if (element is TextBox)...
  • WPFTextBox的焦点获取与失去焦点的死循环解决方案
  • Wpf中通过绑定来更新textbox

    万次阅读 2017-04-17 21:24:37
    wpf中要动态的改变textbox需要通过绑定来实现,下面我就一步一步讲解如何绑定。首先在MainWindow中定义了两个控件,一个button和一个textbox。并将这两个控件放在viewbox中。&lt;Window x:Class="...
  • WPF自制TextBox利用Validation验证来实现必填项和焦点的提示特效。 此为专门为MVVM模式的实现。网上要么搜不到真实可用的,要么就是一大堆看不懂的机制绕路太远。我写了个简单明了的。希望可以帮助大家更好地利用...
  • WPF 设置TextBox的输入法

    千次阅读 2019-09-30 14:08:06
    使用WPF做Windows客户端开发时,如果需要控制输入框的输入语言,本文为读者介绍了两个控制输入模式的类,InputLanguageManager和InputMethod。用于控制输入法的语言,以及限制输入内容。
  • WPFTextBox 文本框中TextChanged事件

    万次阅读 2019-04-16 17:20:21
    TextBox Grid.Row="5" Grid.Column="3" Text="{Binding XXX}" Grid.ColumnSpan="2" Margin="42,0,89,1" Style="{StaticResource XXStyle}" Height="39" VerticalAlignment="Bottom" > <i:I...
  • 前两天做一个项目的时候,由于页面没有限制TextBox的输入长度,所以,后台直接报错了,超出数据库最大的长度。 数据库的长度是按照字节来计算的,而且不同的编码格式,汉字占用的字节长度又不相同,比如,我们用的...
  • 主要为大家详细介绍了WPF TextBox水印效果的制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 第一步:在TextBox中添加属性 InputMethod.IsInputMethodEnabled="False" <TextBox x:Name="Barcode" Width="90" Height="26" Margin="2" BorderThickness="2" InputMethod.IsInputMethodEnabled="False" ...
  • 博客讲解样例demo,欢迎下载!https://blog.csdn.net/luoqiang_sky/article/details/90676944
  • TextBox元素获得焦点时,可以用SelectAll()来选择已有文字,但不能直接用SelectAll()就得到想要的效果。其中一种方式是通过PreviewMouseDown\GotFocus\LostFocus的多个事件来完成,逻辑有些繁琐。每次都写这些就造成...
  • WPF Slider与TextBox绑定

    2020-08-18 14:55:45
    Slider与TextBox的数值绑定,可以在Slider绑定,亦可在TextBox绑定。 使用 1.TextBox绑定,注意UpdateSourceTrigger=PropertyChanged,Mode=TwoWay。 <Slider x:Name="slider" Maximum="100" ...
  • I want to get the current cursor position from a WPF TextBox. If a TextBox contains text abhishek and cursor is blinking after abhi then i want that index, so that later after clearing textbox problem...
  • WPFTextBox的LostFocus事件中直接使用Focus()方法会出现死循环的问题正确的使用方式有2中方法:方法一:privatevoidtextBox3_LostFocus(objectsender,RoutedEventArgse){if(textBox3.Text!="abc"){this....
  • WPF textbox ctrl+enter回车 enter触发button的click事件前言界面实现思路代码总结 前言 第一次写csdn博客,就记录一下一个小功能的实现吧,最近在做和微信相关的一个插件,其中有一块是仿照微信的发送功能,即在...
  • 赋值: richTextBox1.Document.Blocks.Clear(); Run run = new Run(innerMessage); Paragraph p = new Paragraph(); ... p.Inlines.Add(run);... richTextBox1.Document.Blocks.Add(p);...TextRange textRange = ne
  • TextBox绑定view model 中的一个属性,如果TextBox发生改变,但是焦点没有移出TextBox,此时VM中的属性是没有发生改变的       其实可以在XAML里这么做 xmlns:i="clr-namespace:System....
  • WPF教程(十七)TextBox

    万次阅读 2016-10-17 22:16:02
    文本框是WPF最基础的文本输入控件,允许终端用户编写文本,可以是一行文字,也可以是多行。 单行文本框 文本框是如此的简单,你都不需要设置任何属性,就可以拥有一个完整的可编辑区。 xmlns=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,206
精华内容 1,682
关键字:

wpf获取textbox的值