【问题标题】:AvalonEditor SearchPanelAvalonEditor 搜索面板
【发布时间】:2013-08-20 12:42:12
【问题描述】:

我使用 avalonEdit:TextEditor 来显示 XML 文件,并希望使用 ICSharpCode.AvalonEdit.Search.SearchPanel 添加搜索功能:

SearchPanel sp = new SearchPanel();
sp.Attach(textEditor.TextArea);
sp.Open();

效果很好,但是面板中的文本框没有焦点。 “重新激活”方法也不起作用。 谁能告诉我如何将焦点设置在 SearchPanel 中的文本框上? 谢谢!

【问题讨论】:

    标签: wpf avalonedit


    【解决方案1】:

    Open 方法将控件插入到文本编辑器的装饰层中。您将不得不使用

    sp.Dispatcher.BeginInvoke(DispatcherPriority.Input, (Action)sp.Reactivate);
    

    触发重新激活 SearchPanel 实例已正确初始化。 API 有点乱,肯定需要清理一下,但这应该可以解决您现在的问题。

    【讨论】:

    • 感谢您的回复。我找到了另一种激活查找功能的方法:xmlEditor.TextArea.DefaultInputHandler.NestedInputHandlers.Add(new SearchInputHandler(xmlEditor.TextArea));
    【解决方案2】:

    正如 Siegfried 所建议的,我在 VB.Net 中使用过

    searchPanel.Dispatcher.BeginInvoke(Sub() searchPanel.Reactivate(), Windows.Threading.DispatcherPriority.Input)
    

    效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多