我正在将一个旧的编辑器类型应用程序从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>