2013-03-05 6 views
5

Window.SizeToContentのサイズを制限するのは何とかできますか?Window.SizeToContentを制限して拡張するには

私はTabControlのコンテンツで動的に埋め込まれた一般的なウィンドウを持っています。各TabItemの大きさが最初に分かっていないので、スクロールせずにすべてを表示するために、必要なサイズを事前に計算することはできません(私は高さだけを気にします)。

SizeToContentを有効にすると、タブが変更されるたびに自動的にサイズが必要なサイズに調整されます。現在のビューにはもっと多くのスペースが必要な場合にのみ展開されても問題ありませんが、必要なスペースが少なくてもウィンドウが縮小されることは嫌です。 SizeToContentの動作を、ウィンドウサイズのの拡張の拡張を許可するように制限できますか?または、動作を別の方法でエミュレートすることはできますが、ウィンドウコントロールやタブコントロールの横にある他のコンポーネントを考慮して正しい結果が得られますか?

私はタブを変更するときに、新しいサイズ情報がどこに行くかを見つけるために、異なるウィンドウイベントをフックしようとしたが、ウィンドウ上の唯一の本当の有用な1、OnChildDesiredSizeChanged、それが呼ばれていたいくつかのタブのため(決定論的な結果を生成されませんでした、他の人にとってはそうではなかった)。あなたは他の考えを持っていますか?

+1

単純に最小サイズを定義するのはどうですか? –

+1

@KevinDiTraglia私が言ったように、ウィンドウはコンテンツで動的に埋められます。実際には、ユーザーがサイズを変更してサイズを小さくできるようにしたいと考えています。私はちょうどデフォルトのサイズが表示されたコンテンツの "完璧"であることを望みます。 – poke

答えて

3

私はBobsアプローチを試みました。彼の答えは正しいアプローチです。

私の場合は、WindowLoadedイベントが早期に発生します。コンテンツがレンダリングされる前にそれが発生しました。

私は "ContentRendered"イベントを使用しましたが、コンテンツサイズが縮小されるとウィンドウが縮小しません。初めてウィンドウが表示された後にコンテンツのサイズが大きくなる場合は、 "SizeChanged"イベントを使用することができます。

関連する問題