C#-WPF-控件-TextBox 数据绑定

常用属性和设置

1. VerticalContentAlignment="Center" 显示文字垂直居中
HorizontalContentAlignment="Center" 显示文字水平居中

实例

1.数据绑定-简单对象的绑定

2.输入数字 方法1

3.输入数字 方法2


实例

1.数据绑定-简单对象的绑定

绑定自定义的数据类对象

在xaml代码中,Binding标记扩展中仅定义了Path属性,将它绑定到StudentData类的属性上。不需要定义源对象,因为通过指定DataContext类定义源对象。

DataContext是一个依赖属性,它用基于FramewrokElement定义。指定相应控件的DataContext属性表示当前控件中的每个元素都默认绑定此数据。

实例需要的文件

新建类 .cs数据模型类

新建类后可以看到

新建类 BeanData.cs

在主窗体类中应用

2.输入数字

<TextBox x:Name="tbx_coil_01" Width="100"

InputMethod.IsInputMethodEnabled="False"

PreviewKeyDown="tbx_coil_01_PreviewKeyDown">

</TextBox>

cs 复制代码
        private void tbx_coil_01_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            bool shiftKey = (Keyboard.Modifiers & ModifierKeys.Shift) != 0;//判断shifu键是否按下
            if (shiftKey == true)                  //当按下shift
            {
                e.Handled = true;//不可输入
            }
            else                           //未按shift
            {
                if (!((e.Key >= Key.D0 && e.Key <= Key.D9) || (e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Delete || e.Key == Key.Back || e.Key == Key.Tab || e.Key == Key.Enter))
                {
                    e.Handled = true;//不可输入
                }
            }

3.输入数字 方法2

在WPF(Windows Presentation Foundation)中,如果你想让一个 TextBox 控件只允许用户输入数字,可以通过几种方法来实现。以下是几种常见的方法:

方法一:使用 PreviewTextInput 事件

你可以处理 TextBox 的 PreviewTextInput 事件,并在事件处理程序中检查输入字符是否为数字。

//============================================================xml

<Window x:Class="YourNamespace.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="MainWindow" Height="200" Width="400">

<Grid>

<TextBox Name="NumericTextBox" Width="200" Height="30" Margin="10"

PreviewTextInput="NumericTextBox_PreviewTextInput"/>

</Grid>

</Window>

cs 复制代码
//===============================================================csharp
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Input;
 
namespace YourNamespace
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void NumericTextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
        {
            e.Handled = !IsTextAllowed(e.Text);
        }
 
        private static bool IsTextAllowed(string text)
        {
            // 允许数字(0-9)和小数点(.),如果不需要小数点可以去掉 '.'
            Regex regex = new Regex("^[0-9]+(\\.[0-9]*)?$");
            return regex.IsMatch(text);
        }
    }

将持续更新中

相关推荐
白帽攻防录8 小时前
SRC 挖洞:PostScript 打印机驱动双 RCE,打印服务器怎么变成内网跳板
开发语言·网络安全·php·内网安全
十年Java程序媛8 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
2603_965148119 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya9 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
学逆向的10 小时前
C 循环结构的执行效率分析
c语言·开发语言·数据结构·网络安全
小坏讲微服务10 小时前
刚发布一个月的JDK 27,为什么我建议你立刻升级?
java·开发语言·spring boot·spring·架构·求职招聘·springboot4
打工仔折腾 AI12 小时前
用 Dashlet 把极空间 NAS 服务入口整理成统一导航首页的实践
java·开发语言·人工智能·后端·python·rpc·ai agent 实战
MATLAB代码顾问12 小时前
Simulink PI 参数扫描与批量仿真完整 MATLAB 代码
开发语言·matlab
Want59512 小时前
Python跳动的爱心②
开发语言·python·数学建模
小羊没烦恼!13 小时前
T-SQL查询进阶--理解SQL SERVER中的分区表
服务器·开发语言·前端·javascript·html