1

多数のコンテンツ領域を含むアプリケーションに取り組んでいます。ユーザー入力に応じて、これらのコンテンツ領域のいずれかを切り替えてアプリケーション ウィンドウ全体に合わせたり、必要に応じて元の位置に戻すことができるような動作を実装したいと考えています。私はいくつかのアプローチを試しましたが、どれも私にとって最適ではないようです。これが私がやろうとしたことです:

  1. 「全画面表示」にしたいコンテンツで ClipToBoundsProperty を使用する: CanvasPanel だけがこのプロパティを完全に尊重しているように見えるため、機能しません。アプリケーションをローカライズする必要があるため、CanvasPanel は避けたいと思います。
  2. Grid を使用して、他のコンテンツ領域を折りたたんで、見たいものだけが表示されるようにして、画面全体を占有します。これはおそらく機能しますが、実装や保守が容易ではないようです。「フルスクリーン」コンテンツ領域は、たとえばタブコントロール内に存在するなど、いくつかのレベルの深さになる可能性があるため、タブヘッダーも非表示にする必要があります.
  3. 別のビューでコンテンツ領域を再構築し、残りを非表示にして表示します: DataTemplates と ViewModel オブジェクトを使用するのは簡単に思えますが、このアプローチを使用すると、GUI/ビューのみの状態は保持されません。
  4. どういうわけか、GUI/ビューを「持ち上げて」別のビューに「全画面表示」し、残りを非表示にして表示します。これを行う方法や、可能かどうかさえわかりません。

とにかく、誰かがより良いアプローチを知っているなら、私はそれについて知りたいです.

どうもありがとう!

4

1 に答える 1

1

4番目のオプションに関して:「myWindow.Hide()」を呼び出すことでウィンドウを非表示にできます。ウィンドウはメモリに残りますが、ユーザーはそれを見ることができません。再度表示したい場合は、「myWindow.Show()」を呼び出すだけです。

または、Popup コントロールを使用してみてください。これは、他のすべてのコンテンツの上に配置されます。見る:

http://roecode.wordpress.com/2008/01/07/wpf-popup-control-part-1-the-quick-and-dirty-way/ http://dotnetslackers.com/Community/blogs/bmains/ archive/2007/07/26/Introduction-to-WPF-Popups.aspx

于 2009-09-30T20:19:59.667 に答える