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

4

0 に答える 0