特定于平台的行为的接口定义

时间:2013-02-15 23:13:33

标签: wpf design-patterns interface

我正在将一个旧的编辑器类型应用程序从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和其他平台同时运行的内容。< / p>

0 个答案:

没有答案