1

我正在将旧的编辑器类型应用程序从 WinForms 转换为 WPF。它有一些工具(如 Photoshop 中的那种),您可以在其中选择它们,它们有一些行为,并且它们有一个光标图标。

我已经将我的域逻辑分离到一个 BLL 中,因此那里有一个用于工具行为的接口以及一些不依赖于 WPF 的实现。我试图弄清楚如何在不将 BLL 绑定到 WPF 的情况下实现光标行为。

似乎与绘图有关的一切都是特定于平台的——绘图上下文、图像等。这意味着我无法将任何方法或参数类型放入 BLL 的接口中。我不打算再次实际使用 WinForms,而且我将来也没有计划其他平台,但我想把这段代码写得好,就好像那是可能的一样。

示例代码:我在 BLL 中有这个界面:

public interface IToolProvider
{
    IToolBehavior Tool { get; }
}

然后这个:

public interface IToolBehavior
{
    void Click(ScreenDocument screen, Point location);
    void Move(ScreenDocument screen, Point location);
    void Release(ScreenDocument screen);
    void RightClick(ScreenDocument screen, Point location);
}

(我在Point这里使用自己的实现,基本上是由于每个平台都有自己的 Point 类的确切问题。)

我想IToolCursor Cursor { get; }IToolProvider界面中添加类似的东西,但我不知道IToolCursor界面中可以与 WPF 和其他平台同时工作的内容。

4

0 回答 0