古いエディター タイプのアプリケーションを 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; }
のようなものをインターフェイスに追加したいのですが、WPF や他のプラットフォームと同時に動作IToolProvider
するインターフェイスに何が入るかわかりません。IToolCursor