【问题标题】:How to create a "assign button" texbox in visual studio / wpf / c#?如何在 Visual Studio / wpf / c# 中创建“分配按钮”文本框?
【发布时间】:2016-06-19 13:11:18
【问题描述】:

我刚刚开始使用 Visual Studio 进行编码。我创建了一个 wpf 项目并让它做一些简单的事情,到目前为止一切都很好。

现在我想创建一个文本框,其作用类似于您在游戏的选项菜单等中找到的“分配键/按钮”字段。基本上,当用户单击文本框时,将显示一条消息,提示用户按任意键。一旦用户按下任何键(事实证明它不是 ESC),该键就会存储在文本框中(文本框中没有输入光标,没有按 enter/return 确认等,只是等待下一个键盘输入)。

稍后我想使用该存储值来检查它是否与 kayboard 输入匹配,然后触发相应的操作。

谁能指出我正确的方向?非常感谢您。

【问题讨论】:

    标签: c# wpf visual-studio input


    【解决方案1】:

    将文本框设为只读,当用户在获得焦点时按下键,只需将该键打印到文本框:

    private void textbox_KeyUp(object sender, KeyEventArgs e)
    {
        if (textbox.IsFocused && e.Key != Key.Escape)
        {
            textbox.Text = e.Key.ToString();
        }
    }
    

    在 XAML 中:

    <TextBox x:Name="textbox" HorizontalAlignment="Left" Margin="10" VerticalAlignment="Top" Width="100" KeyUp="textbox_KeyUp" IsReadOnly="True"/>
    

    【讨论】:

    • 感谢您的回复。从 ui/feel 的角度来看,这是一种相当“老派”的方式,我想效仿的一种更现代的方式是有一个小弹出窗口等待按下一个键,但是通过你的解决方案,我可以做一些初始的从那里开始测试和工作。
    • WPF 中没有内置的输入对话框。或者,您可以将自定义输入对话框创建为带有文本框的单独窗口并使用相同的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 2012-02-09
    • 2012-01-07
    相关资源
    最近更新 更多