×

wpf textbox 文本

wpf textbox(WPF 中,怎么让 TextBox 里面输入的文本居中)

admin admin 发表于2023-05-02 17:36:29 浏览71 评论0

抢沙发发表评论

本文目录

WPF 中,怎么让 TextBox 里面输入的文本居中

所以说我最恨不懂装懂的人,VerticalAlignment是VB和ASP用的,TextAlignment=“Center“是水平居中,C#语言对Winform开放的是ContentAlignment属性精细到横向竖向位置。textBox是Winform控件,没有ContentAlignment属性的,你真的要需要重写控件,但是这样不值。
方法一:使用label代替textBox,要输入就使用按键或者用keypress来实现,他有ContentAlignment属性,这是最简单的办法
方法二:自定义textBox控件

如何让wpf 中的textbox只能输入整型或浮点型呢

要吗用正则表达式,要不嫌麻烦就用代码控制:
bool isNotnum = false;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
((TextBox)sender).ImeMode = ImeMode.Disable;
this.isNotnum = false;
((TextBox)sender).Tag = ((TextBox)sender).Text;
//允许输入数字、小数点和删除键
if((e.KeyChar《48||e.KeyChar》57) && e.KeyChar!=8&&e.KeyChar!=(char)(’.’))
{
e.Handled = true;
this.isNotnum = true;
}
//小数点只能输入一次
if(e.KeyChar ==(char)(’.’)&&((TextBox)sender).Text.IndexOf(’.’)!=-1)
{
e.Handled = true;
}
//第一位不能为小数点
if (e.KeyChar == (char)(’.’) && ((TextBox)sender).Text == ““)
{
e.Handled = true;
}
//第一位是0,第二位必须为小数点
if (e.KeyChar != (char)(’.’) && ((TextBox)sender).Text == “0“)
{
e.Handled = true;
}
if(e.KeyChar == 8)
{
e.Handled = false;
}
//只允许输入数字
if (e.KeyChar 》= 0x4e00 && e.KeyChar 《= 0x9fa5)
{
this.isNotnum = true;
}
}
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (this.isNotnum && ((TextBox)sender).Text != ((TextBox)sender).Text.ToString())
{
MessageBox.Show(“只能输入数字!!!“, “温馨提示“, MessageBoxButtons.OK, MessageBoxIcon.Question);
((TextBox)sender).Text = ((TextBox)sender).Tag.ToString();
((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length;
this.isNotnum = false;
return;
}
}
}

wpf 如何查找window下的所有TextBox元素

1.window派生自ContentControl,也就是说它只能有单一子项,单纯的window下不可能有多个textbox控件。
2.通常,或者说你在VS建WPF项目默认时,window下面是个Grid,它可以有多个子控件,假如这个Grid名称是”rootGrid“,查找其下所有TextBox代码如下:
foreach (UIElement control in rootGrid.Children)
{
if (control is TextBox)
{
//转换成TextBox类型,此后对其进行处理即可
TextBox textBox = control as TextBox;
MessageBox.Show(“我是文本框“);
}

}

wpf textbox允许输入多少

(一)这今天做wpf项目的时候,有关TextBox输入验证的问题。关于验证
(1)输入的时候做到有效数据的有效输入
(2)输入后再操作时候做检查,并弹出对话框提示。
我跟倾向于在输入的时候做到限制的有效输入
在项目中碰到的问题。
(1)输入框只能输入整数
(2)输入框输入的含小数位数最大位数为4位
(二)下考了如下链接。
(1)大气象学习园地的
Silverlight限制TextBox只能输入整数或者小数
(2)yingql的
Silverlight开发中的疑难杂症-控件设计篇-如何实现一个NumericBox(上)
Silverlight开发中的疑难杂症-控件设计篇-如何实现一个NumericBox(下)
Silverlight开发中的疑难杂症-如何通过代码附加Behavior
(三)基于TextBox的自定义控件NumericBox
注意点,由于涉及到Behavior,需要引用Blend中System.Windows.Interactivity.dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Interactivity;
namespace NumericBoxDemo
{
/// 《summary》
/// NumericBox功能设计
/// 只能输入0-9的数字和至多一个小数点;
///能够屏蔽通过非正常途径的不正确输入(输入法,粘贴等);
///能够控制小数点后的最大位数,超出位数则无法继续输入;
///能够选择当小数点数位数不足时是否补0;
///去除开头部分多余的0(为方便处理,当在开头部分输入0时,自动在其后添加一个小数点);
///由于只能输入一个小数点,当在已有的小数点前再次按下小数点,能够跳过小数点;
/// 《/summary》

wpf如何设置 textbox文本垂直居中对齐

wpf如何设置 textbox文本垂直居中对齐的方法如下:
输入代码:
《Style x:Key=“Test_TextBox“ TargetType=“{x:Type TextBox}“》
《 Setter Property=“Template“》
《 Setter.Value》
《 ControlTemplate TargetType=“{x:Type TextBox}“》
《 Border x:Name=“border“ Width=“Auto“ Height=“Auto“ BorderThickness=“1“ BorderBrush=“#FF7F9DB9“》
《 Grid x:Name=“grid“ Background=“#FFFFFF“》
《 ScrollViewer x:Name=“PART_ContentHost“ VerticalAlignment=“Center“ HorizontalAlignment=“Left“/》
《 /Grid》
《 /Border》
《 /ControlTemplate》
《 /Setter.Value》
《 /Setter》
《 /Style》
最后应用一下样式可以了。

wpf textbox 加按钮

推荐你两种方法:

  1. 创建自定义控件,改自定义控件由TextBox和Button组合而成。(这个就不给代码了)

  2. 修改TextBox的模板或样式。代码如下:

《Window
        xmlns=“

wpf怎么让Textbox只能输入数字

废话不多说,直接上代码。
首先在界面中添加一个TextBox
《TextBox Name=“txt_group_userNo“ DataObject.Pasting=“txt_group_userNo_Pasting“ InputMethod.IsInputMethodEnabled=“False“ PreviewKeyDown=“txt_group_userNo_PreviewKeyDown“ PreviewTextInput=“txt_group_userNo_PreviewTextInput“ Width=“100“ 》《/TextBox》
然后再后台代码中实现事件
#region 控制文本框只能输入数字
private void txt_group_userNo_Pasting(object sender, DataObjectPastingEventArgs e)
{
if (e.DataObject.GetDataPresent(typeof(String)))
{
String text = (String)e.DataObject.GetData(typeof(String));
if (!isNumberic(text))
{ e.CancelCommand(); }
}
else { e.CancelCommand(); }
}
private void txt_group_userNo_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
e.Handled = true;
}
private void txt_group_userNo_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
if (!isNumberic(e.Text))
{
e.Handled = true;
}
else
e.Handled = false;
}
public static bool isNumberic(string _string)
{
if (string.IsNullOrEmpty(_string))
return false;
foreach (char c in _string)
{
if (!char.IsDigit(c) && c.ToString() != “*“)
//if(c《’0’ c=““》’9’)//最好的方法,在下面测试数据中再加一个0,然后这种方法效率会搞10毫秒左右
return false;
}
return true;
}
#endregion

wpf中如何将textbox中的值传到datagrid中

WPF不需要你所说的这样获取选中单元格的数据,现在你的DataGrid已经绑定了,那么它对应的数据就是它的或是它上级的DataContext,因为你例举的xaml不全,只能看出此单元格对应的是ResShare这个属性,设置一下触发器:
《TextBox Text=“{Binding ResShare,UpdateSourceTrigger=PropertyChanged}“》
嗯,还得在CS代码或是ViewModel中定义一个IsSelected属性,绑定到此控件上,现在你所点击的单元格数据可以直接取绑定的数据源中属性值了。

wpf中,如何让textbox获得焦点时,其text被选中

你写个附加属性,然后就可以在Style里面用了。
public class TextBoxHelper
{
public static readonly DependencyProperty AutoSelectAllProperty =
DependencyProperty.RegisterAttached(“AutoSelectAll“, typeof(bool), typeof(TextBoxHelper),
new FrameworkPropertyMetadata((bool)false,
new PropertyChangedCallback(OnAutoSelectAllChanged)));
public static bool GetAutoSelectAll(TextBoxBase d)
{
return (bool)d.GetValue(AutoSelectAllProperty);
}
public static void SetAutoSelectAll(TextBoxBase d, bool value)
{
d.SetValue(AutoSelectAllProperty, value);
}
private static void OnAutoSelectAllChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var textBox = d as TextBoxBase;
if (textBox != null)
{
var flag = (bool)e.NewValue;
if (flag)
{
textBox.GotFocus += TextBoxOnGotFocus;
}
else
{
textBox.GotFocus -= TextBoxOnGotFocus;
}
}
}
private static void TextBoxOnGotFocus(object sender, RoutedEventArgs e)
{
var textBox = sender as TextBoxBase;
if (textBox != null)
{
textBox.SelectAll();
}
}
}
然后在Style里面
《Setter Property=“local:TextBoxHelper.AutoSelectAll“ Value=“True“/》
local是你引用的命名空间