达到 MaxLength 时 XAML 触发自动制表符

2024-01-30

当 MaxLength 属性到达 XAML 触发器、DataTrigger、PropertyTrigger、Style.Trigger 等时,如何合并自动制表符。下面是两个这样的选项,说明我如何通过代码隐藏使用 TextBox 完成此操作。我也希望将其应用到 XAML 样式中。谢谢。

XAML:

<TextBox x:Name="MyTextBox"
            Text="{Binding Path=MyProperty}"
            Style="{StaticResource TextBoxStyle}"
            MaxLength="5"
            TextChanged="MyTextBox_TextChanged">
</TextBox>

WPF 的隐藏代码:

private void MyTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    if (MyTextBox.Text.Length == MyTextBox.MaxLength)
    {
        Keyboard.Focus(NextTextBox);
    }
}

private void MyTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
    // Auto-tab when maxlength is reached
        if (((TextBox)sender).MaxLength == ((TextBox)sender).Text.Length)
        {
            // move focus
            var ue = e.OriginalSource as FrameworkElement;
            e.Handled = true;
            ue.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
        }
    }
}

只需在 Shell.xaml 中执行此操作

 <Style TargetType="TextBox">
                <EventSetter Event="TextChanged" Handler="MyTextBox_PreviewKeyDown"/>
            </Style>

并在你的 shell.xaml.cs 中

private void MyTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
    // Auto-tab when maxlength is reached
        if (((TextBox)sender).MaxLength == ((TextBox)sender).Text.Length)
        {
            // move focus
            var ue = e.OriginalSource as FrameworkElement;
            e.Handled = true;
            ue.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

达到 MaxLength 时 XAML 触发自动制表符 的相关文章

随机推荐

  • 如何在 Matlab 中更新 scatter3 图(循环)

    这是一个非常简单的问题 但在网上找不到答案 我想可视化从激光雷达收集的点云 我可以绘制各个帧 但想循环它们以创建 动画 我知道如何使用 Drawingow 处理正常绘图 但无法使用 scatter3 处理它 如果我只是像在注释代码中所做的那
  • 如何检测有人摇晃 iPhone?

    我想在有人摇晃 iPhone 时做出反应 我并不特别关心他们如何摇动它 只是在瞬间用力挥动它 有谁知道如何检测这个 在 3 0 中 现在有一种更简单的方法 挂钩新的运动事件 主要技巧是您需要有一些 UIView 不是 UIViewContr
  • 将 box-shadow 设置为一组 HTML 元素

    我有两个元素 它们的侧面相互接触 它们的接触面具有不同的尺寸 尺寸 它们都需要在下面有一个阴影 问题是其中一个阴影总是覆盖其同级元素 我可以玩z index但这只是意味着我将选择两者中的哪一个将被兄弟姐妹的阴影覆盖 如果可以向一组元素添加阴
  • 设计 WPF 地图控件

    我正在考虑在 WPF 中制作一个简单的地图控件 并且正在考虑基本地图界面的设计 并且想知道是否有人对此有一些好的建议 我想到的是使用 ScrollViewer 无滚动条 作为我的 视图端口 然后将所有内容堆叠在画布上 从 Z Index 0
  • `Array.prototype.slice.call` 是如何工作的?

    我知道它是用来做arguments a real Array 但我不明白使用时会发生什么Array prototype slice call arguments 幕后发生的事情是当 slice 通常被调用 this是一个数组 然后它只是迭代
  • 如何在 stackdriver 中针对每个错误创建警报

    创建了基于日志的指标云控制台 https console cloud google com logs metrics 然后我想创建警报 以便每次有新的匹配日志条目时都会触发警报 在尝试创建合适的指标时 最有可能的选项似乎是阈值或变化率 但我
  • fancybox onStart onComplete 状态不起作用

    我正在努力继续工作onStart and onComplete方法使用FancyBox http fancybox net jquery 插件 我似乎无法让它为我工作 你们有人知道我做错了什么吗 这就是我现在正在尝试的 document r
  • 如何重置表中的身份

    我的情况是 我创建表为 id Identity 1 1 not null name varchar 500 category varchar 50 我尝试插入值 显示有 1 sede 糖尿病 结果是 1 2 3 但是当我删除全部内容时 再次
  • Android 中的转义“@”字符

    我正在寻找一种方法来转义 Android strings xml 资源中字符串开头的 符号 我不断收到编译错误 并且 Eclipse 中的布局构建器拒绝工作 有谁知道怎么办 字符景观取决于每个人 android文档提供了这个表https d
  • 如何查看Check Constraint的内容

    是否有一个 SQL 脚本可以让我查看约束的内容 我发现了一个有关 Oracle 的问题 但我需要一个 SQL 脚本 如何在Oracle上查看Check Constraint的内容 https stackoverflow com questi
  • intellij 2020.1 sbt mainRunner 配置

    我正在尝试遵循指示 https github com JetBrains intellij scala wiki 5BSBT 5D How to use provided libraries in run configurations用于设
  • Vue中如何通过Id获取元素?

    我想要一件外衣Element https developer mozilla org en US docs Web API Element在 Vue 中 使用getElementById https developer mozilla or
  • 安装 geoR 包时出现问题

    我刚刚在 Xubuntu 13 10 上安装了 R 和 R studio 版本 3 0 1 我想使用geoR包裹 但是 当我尝试安装它时 出现错误 install packages geoR 将软件包安装到 home R x86 64 pc
  • Java getter 与 this

    这是一个非常通用的场景 我使用 setter 函数设置变量并仅在本地使用该变量 class Main private String str public Main String value setStr value private Stri
  • 如何在 WCF 服务上设置密码?

    我正在开发一个 WCF 服务 我们的其他软件调用该服务将错误信息发送到我们的数据库 问题是 由于它是在线服务 所以它不安全 所以我想知道该服务是否可以请求密码 即当我们调用该服务时 我们必须配置密码或类似的东西 我用谷歌搜索了一下 但对于这
  • 尾递归Map函数RACKET

    Racket 中的映射函数采用一个函数和一个列表 并将该函数递归地应用于列表中的每个项目 我正在尝试将映射转换为尾递归函数 这该如何完成 你被困在哪里了 您可以定义自己的map程序与内部loop程序 define map f in defi
  • 如何在 Jetpack Compose for Desktop 中使用 .svg 文件?

    我正在尝试使用 svg 矢量文件 来显示图像 但我被卡住了 无法做到这一点 有什么办法可以使用它 我尝试像这样使用它 Image imageFromResource svg file name svg contentDescription
  • OpenCV 中从 3D 点构建平面

    我想从 OpenCV 中的 3D 点列表构造一个平面 我想通过查找以下形式的四个参数来获得结果 Ax By Cz D 0 有人会建议我一种方法吗 如果数据不包含异常值且不包含多个平面 此外 所有点都恰好位于一个平面上 数据没有噪声 就这么简
  • 将字典转换为元组列表

    如何以最短的方式将字典转换为元组列表 C Dictionary
  • 达到 MaxLength 时 XAML 触发自动制表符

    当 MaxLength 属性到达 XAML 触发器 DataTrigger PropertyTrigger Style Trigger 等时 如何合并自动制表符 下面是两个这样的选项 说明我如何通过代码隐藏使用 TextBox 完成此操作