我在usercontrol中有文本框,我使用以下XAML将usercontrol添加到MainWindow:
<Views:MyUserControl />
Run Code Online (Sandbox Code Playgroud)
我在MyUserControl中有一个TextBox,问题是TextBox不接受任何输入.退格键och空间有效,但是如果按下字母,则不会在TextBox中添加任何文本.
我确保文本不仅隐藏在TextBox中.我也尝试将RichTextBox添加到MyUserControl,结果相同,它不会接受任何输入(在space och backspace旁边).
我还尝试将一个TextBox添加到MainWindow,结果相同; 它不会采取任何输入(在太空och退格旁边).
MySuserControl也添加在TabControl和TabItem中.
有线索吗?
编辑:附加信息忘记写我正在从WinForm应用程序打开/创建WPF窗口.当我在VS10中将我的启动项目设置为我的WPF项目时,它可以很好地使用TextBox的键盘输入.
怎么会?
我用以下代码打开/创建我的WPF窗口:
MyWpfProject.MainWindow mw = new MyWpfProject.MainWindow();
mw.Show();
Run Code Online (Sandbox Code Playgroud)
编辑:解决方案所以我想我的真正问题是从WinForms应用程序打开WPf项目.
我添加了以下代码:
MyWpfProject.MainWindow mw = new MyWpfProject.MainWindow();
ElementHost.EnableModelessKeyboardInterop(mw);
mw.Show();
Run Code Online (Sandbox Code Playgroud)
"如果从非WPF主机(如WinForms)加载,则需要在WPF窗口中处理键盘输入."EnableModelessKeyboardInterop()调用是必需的." http://weblogs.asp.net/jdanforth/archive/2008/07/29/open-a-wpf-window-from-winforms.aspx
Fel*_*lix 43
回答我自己的问题(如果其他人遇到同样的问题):如果你从WinForms应用程序打开一个WPF表单,你必须执行以下操作来获得键盘输入:
MyWpfProject.MainWindow mw = new MyWpfProject.MainWindow();
ElementHost.EnableModelessKeyboardInterop(mw);
mw.Show();
Run Code Online (Sandbox Code Playgroud)
"如果从非WPF主机(如WinForms)加载,则需要在WPF窗口中处理键盘输入."EnableModelessKeyboardInterop()调用是必需的." http://weblogs.asp.net/jdanforth/archive/2008/07/29/open-a-wpf-window-from-winforms.aspx
归档时间: |
|
查看次数: |
6423 次 |
最近记录: |