C# 如何在C中将此方法转换为WPF#

C# 如何在C中将此方法转换为WPF#,c#,wpf,vb.net,C#,Wpf,Vb.net,E.KeyValue=51表示散列键,这是我无法在C中转换为WPF的问题# 下次使用 好的,我从我的WPF应用程序中提取了一些代码片段,它与您的代码不同,但它处理键盘事件 private void txtMeaning_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == Keys.Enter || e.KeyValue == 51) { e.SuppressKeyPress = true; } }

E.KeyValue=51表示散列键,这是我无法在C中转换为WPF的问题#

下次使用

好的,我从我的WPF应用程序中提取了一些代码片段,它与您的代码不同,但它处理键盘事件

private void txtMeaning_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyValue == Keys.Enter || e.KeyValue == 51) {
        e.SuppressKeyPress = true;
    }
}

看起来不仅是从VB.net转换到C#而且是从转换到。尽管名称相同,但这两个方法明显不同,您没有可用的SuppressKeyPress方法,只有处理过的方法,加上没有可用的Numbersign键(我已经找到),因此我通过查看修改器键和D3键来构造它

既然如此,您最好重新设计应用程序的界面,以利用WPF为您提供的所有功能,而不是尝试进行逐行转换

看看这是否适合你

        private void handleWindowkeyUp(object sender, KeyEventArgs e)
        {
            lblMode.Visibility = System.Windows.Visibility.Visible;
            if (e.Key == Key.Space)
            {
                lblMode.Content = (lblMode.Content.ToString() == "IN") ? "OUT" : "IN";                           return;
            }
        }


        private void btnAdmin_Click(object sender, RoutedEventArgs e)
        {
            DisplayAdminWindow();
        }

这个问题似乎与主题无关,因为堆栈溢出不是代码转换服务。您错了,因为该方法没有转换。我提到的动词是这样的,但这不是WPF中的转换,如果你冷静的话,忘记C#。一个“转换为WPF”是没有意义的。如果你想从VB转到C#,那与WPF无关。如果您从WinForms移动到WPF,您应该重写表示层的整个体系结构。WinForms样式的WPF没有任何好处。“System.Windows.Input.KeyEventArgs”不包含“KeyValue”的定义,并且找不到接受“System.Windows.Input.KeyEventArgs”类型的第一个参数的扩展方法“KeyValue”(是否缺少using指令或程序集引用?)偶数键。在WPF中输入是错误的,它必须是键。输入。。我认为你建议的转换器工作不太好。非常感谢你的帮助。我想我从来没有从这里得到过积极的反馈(StackOverFlow)。很多人准备用向下箭头给出消极的反馈。我怎么能用一个好的方式来表达我的观点,从而联系到合适的人我真的很困惑?现在我准备好了-6,让我们看看在不久的将来有多少数字上升。部分问题是你的头衔(这是人们看到的第一件事)是评判你的标准,你的问题是这样问的,就是用问题和代码转换你的代码,而没有真正解释你的问题。好的,我会考虑你的意见,谢谢马克。顺便说一句,您的建议在文本框Ctrl+V组合键中不起作用。就连我用的都是对的。我无法阻止使用Ctrl+VI解决PreviewKeyDown事件的问题。它与您的方法很好,并防止Ctrl+V。再次感谢马克
        private void handleWindowkeyUp(object sender, KeyEventArgs e)
        {
            lblMode.Visibility = System.Windows.Visibility.Visible;
            if (e.Key == Key.Space)
            {
                lblMode.Content = (lblMode.Content.ToString() == "IN") ? "OUT" : "IN";                           return;
            }
        }


        private void btnAdmin_Click(object sender, RoutedEventArgs e)
        {
            DisplayAdminWindow();
        }
if (e.Key == Key.Enter || ((e.KeyboardDevice.Modifiers == ModifierKeys.Shift) && e.Key == Key.D3 ))
{
    e.Handled = true;
}