【问题标题】:Get TextBox focus in WPF app from plugins in separate process从单独进程中的插件获取 WPF 应用程序中的 TextBox 焦点
【发布时间】:2013-02-27 12:46:14
【问题描述】:

我们正在使用 System.AddIn 结构来创建用于托管应用程序的应用程序。我们想要的是连接到 TextBox 在这些单独的应用程序中获得焦点的事件。

我们该怎么做?

我知道这些流程,所以我可以访问这些流程,也许可以收听消息泵?但是怎么做?要监听哪些消息以及如何确定获得焦点的控件是否实际上是 TextBox(WPF 类型)?

希望得到您的帮助!

【问题讨论】:

  • 检查 e.OriginalSource 是 TextBox。
  • 我无权访问 TextBox 实例,因此无法收听您的上述事件,还是我遗漏了什么?

标签: c# wpf c#-4.0 system.addin


【解决方案1】:

我认为你不能以“开箱即用”的方式做到这一点。

一种解决方案可以是创建一个由所有 wpf 进程公开的双工 WCF 服务。

然后客户端可以连接到服务并使用Register方法来监听事件。

然后,服务实现会将事件分派给已注册的客户端。 这需要一些时间,但我认为这是唯一的方法。

【讨论】:

  • 我想避免把责任推给应用开发者。
【解决方案2】:

目前,我们正在研究使用 EventManager.RegisterClassHandler 方法在单独的 appdomain 中注册并为每个开发人员处理适配器中的实现的可能性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多