如何处理在visual studio vspackage中按下用户控件中的任何键

时间:2014-01-15 08:07:47

标签: visual-studio-extensions vspackage

我在代码编辑器控件中添加了usercontrol(textbox)。但是文本框不能处理任何键(箭头,退格键)。 Keys只处理代码编辑器。 例如:

获取IWpfTextView

var textManager = (IVsTextManager)Package.GetGlobalService(typeof(SVsTextManager));
IVsTextView textView;
textManager.GetActiveView(1, null, out textView);            
var userData = (IVsUserData)textView;
if (userData == null)
    return null;
Guid guidWpfViewHost = Microsoft.VisualStudio.Editor.DefGuidList.guidIWpfTextViewHost;     
object host;
userData.GetData(ref guidWpfViewHost, out host);
return ((IWpfTextViewHost)host).TextView;

使用文本框添加控件

Canvas.SetLeft(_control, _view.ViewportRight - 255);
Canvas.SetTop(_control, _view.ViewportTop + 10);
(((System.Windows.Controls.ContentControl)_view).Content as Canvas).Children.Add(_control);

但处理密钥,拦截(主窗口作为编辑器)时出现问题, 密钥未处理。例如箭头,HOME和其他。 如果是这样,添加一个文本框,然后在那里打印字母。但另一个键是由编辑器处理的,而不是这个文本框甚至是退格键。 谁知道如何正确捕捉和处理?

0 个答案:

没有答案