2

私は現在、これに非常にこだわっています。私のデザイナーは、境界線とデフォルトの醜いコントロールを削除するために WindowStyle.None を使用してアプリを作成したいと考えています。その後、カスタム コントロールを追加して、通常は過去にドラッグできるようにしました。長方形を使用して監視しましたドラッグムーブを許可する mousedown イベント。

ただし、Caliburn micro では、windowmanager がこれを作成するため、ウィンドウの制御を失います。create window メソッドをオーバーライドできることは承知していますが、それでも UI 要素をウィンドウ自体に追加し、それらのイベントにバインドすることはできません。 . または、少なくとも私はこれを行う方法を考え出すことができます。

基本的に、達成しようとしているのは、WindowStyle.None を持つ「メインウィンドウ」と、ウィンドウをドラッグして移動する機能です。私のグーグルはこれについて確かな答えを出すことができませんでした。ここに誰かがアイデアを持っていることを願っています.

4

2 に答える 2

4

Caliburn.Micro では、すべてのビューを UserControls にする必要はありません。メイン ビューまたはメイン ウィンドウとして表示するビューは、ウィンドウ コントロールにすることができ、「WindowStyle.None」などのプロパティをそのウィンドウに直接設定できます。Caliburn.Micro は、メイン ビュー モデルの背後にあるビュー(ルートとして使用しているビュー モデル、次に最初に作成しているビュー モデル)が実際には UserControl ではなく Window であることを確認すると、これを尊重してそのウィンドウを表示します。新しいウィンドウを作成しません。したがって、そのウィンドウでプロパティを直接設定すると、すべてが正常に機能します。

于 2013-07-02T21:43:48.810 に答える
2

Caliburn.Microは、作成されたウィンドウの設定を設定できるメソッドにWindowManagerオーバーライドを提供します。Show

例については、こちらをご覧ください。

Windowまたは、 (XAML および生成されたコード ビハインド ファイルで) ビュー タイプとして直接使用し、XAML でプロパティを宣言的に設定することもできます。

すべてのダイアログなどで共通の UI コンポーネントを使用できるようにする場合はWindowManager、呼び出しを CM に委譲するWindowManagerが、渡されたビュー モデルを共通のビュー モデルでラップする派生型を作成できます。次に、デフォルトの CM ウィンドウ マネージャーではなく、このカスタム ウィンドウ マネージャーをブートストラップに登録します。

于 2013-07-02T16:09:34.337 に答える