0

WPF初心者なのでお手柔らかにお願いします。

C#/WPF で既存の VFP アプリを書き直したい

すべてのフォームには、テキストボックス、ラベルなどを含むコンテナーがあります。

この構成を使用すると、ユーザーはコンテナーとそこに含まれるコントロールをマウスで移動したり、コンテナー内に焦点を設定してフォームをズームインおよびズームアウトしたりできます。

したがって、コントロールを WPF フォームに直接追加する代わりに、移動可能なコンテナーを最初に追加し、コントロールをコンテナーに追加する必要があります。

では、どこから始めますか?

4

2 に答える 2

0

あなたが探している主なものの 1 つは、標準の WPF パネル/コンテナーにドラッグ アンド ドロップ機能を追加することのようです。Mash が言ったように、特にパネルを特定の位置にドッキングすることに関心がある場合は、AvalonDock が役立つ可能性があります。ただし、標準の WPF パネルにドラッグ機能を追加するだけのオプションも検討することをお勧めします。これは、AvalonDock の制約を気にすることなく、すぐに開始できる軽量のオプションです。

ドラッグ アンド ドロップを実装する方法は確かにたくさんありますが、このタスクに適していると私が考える非常に便利な機能は、アタッチされた「ビヘイビア」の概念です。アタッチされたビヘイビアを使用すると、基本的に、実際のコントロールを変更または拡張することなく、既存の WPF コントロールに機能を「追加」できます。アタッチされた動作には 2 つの基本的なタイプがあります。1 つは WPF 添付プロパティを使用し、もう 1 つは一般に「ブレンド」動作と呼ばれるものを使用します。差し迫った問題を解決するために行動を使い始めたいだけなら、必ずしもこれら 2 つのアプローチのすべてのニュアンスを理解する必要はありませんが、最終的には、これらのアプローチの両方に適切な場所があることに気付くでしょう。それらについてのこの投稿を読むことをお勧めします。

特に、 WPF パネルにドラッグ アンド ドロップ機能を追加できる、MouseDragElementBehaviorと呼ばれる Blend 動作があります (ここでの「e」と「d」は xmlns 名前空間プレフィックスです)。

<Border Background="LightBlue" >
    <e:Interaction.Behaviors>
        <b:DragBehavior/>
    </e:Interaction.Behaviors>
    <TextBlock Text="Drag me around!" />
</Border>

同様に、ズーム機能について言及しましたが、そのためにも役立つ可能性のある別のブレンド動作があります。

Expression Blend を使用している場合、ブレンド動作は非常に簡単に要素を追加できますが、Visual Studio でも使用できます。これを行う方法を説明するには、拡大動作に関する Laurent の投稿の一部を参照してください。

于 2013-02-05T15:38:19.353 に答える
0

AvalonDockライブラリを試して、要件を満たすことができるかどうかを確認できます。

于 2013-02-05T03:33:03.090 に答える