2010-12-02 4 views
3

私はC++プログラマーです。私はWPFを教えてくれるサイドプロジェクトを開始しました。私は、画像をブラウズしたり、paint.netのようなものをレタッチするデスクトップアプリケーションを作り始めました。WPF:クローズボタンを持つ子ウィンドウのクロム内にコントロールを囲みます

閉じるボタンを持つ子ウィンドウのクロムの中にコントロール(たとえば、下の画像を参照)を囲みたいとします。 MDIのようなものだが、それほどではない。
alt text

今の最も簡単な方法は、私は別の<window></window>以内にそれを囲むことだった、と思ったが、それはWPFがこれを好きではないようです。それは実行時の例外を与えます。

もっと簡単な方法がありますか?似たようなことを説明するリンクは見つかりませんでした。

答えて

3

ウィンドウを使用するには、別のファイルで新しいウィンドウクラスを作成し、メインウィンドウのコードからインスタンス化して表示する必要があります。

var childWindow = new MyChildWindow(); 
childWindow.Show(); 

単純化されたウィンドウクロムセットを取得するには、MyChildWindowのWindowStyle = WindowStyle.ToolWindowを使用します。

通常の非ウィンドウコントロールを使用する必要がある、メインウィンドウ内に含まれているシミュレートウィンドウを作成しようとしている場合。 SilverlightにはChildWindowクラスが含まれていますが、WPFには組み込まれていません。同様のものを作成するには、ControlTemplateを変更してツールウィンドウのようにスタイルを設定するHeaderedContentControlを使用します。また、コントロールのドラッグ、サイズ変更、クローズなどの動作を作成する必要があります。これは通常、カスタムコントロールにすることで最も効果的です。

+0

ありがとうジョントン。これは有望ですね。明日それを試してみる。 –

+0

+1それは動作します...ありがとう! –

+0

これはうまくいきますが、XAMLの同等物を書き込もうとすると、それはできません。 –

関連する問題