3

誰かがWPFストレッチアライメントを理解するのを手伝ってもらえますか?コントロールで領域を塗りつぶしたいという問題に遭遇することがよくありますが、VerticalAlignment="Stretch"をどのレベルに配置すればよいかわかりません。特にUserControlsが関係している場合。

私はいつもいろいろなことを試したり、すべてのレベルでストレッチをしたりして問題を解決しますが、それを正しく行う方法を理解したいと思います。

私が今得た例を見てみましょう:

  • 固定サイズのセルを持つグリッドがあります(GridSplitterでサイズ変更できます)
  • このセルには、TabControlを備えたStackPanelを含むUserControlがあります
  • TabControlには、ListViewを持つ別のUserControlを含むTabItemがあります。

またはある種の疑似XAMLで

<ns:MyUserControl1 Grid.Row="0" Grid.Column="0">
    <!-- this is in MyUserControl1 -->
    <StackPanel>
        <TabControl>
            <TabItem>
               <ns:MyUserControl2>
                    <!-- This is in MyUserControl2 -->
                    <ListView/>
               </ns:MyUserControl2>
            </TabItem>
        </TabControl>
    </StackPanel>
</ns:MyUserControl>

ここで、ListViewがグリッドセル全体(もちろんTabControlとマージンを除く)を埋めるようにします。

4

1 に答える 1

3

ListView は MyUserControl2 を埋めます - これをタブ全体に収めたい場合は、UserControl の xaml ファイル内の高さと幅の制​​約を必ず削除する必要があります (これらはデフォルトでそれぞれ 300 になります)。

編集: お詫び - xaml の重要な部分をスキップしました... MyUserControl1 コンテナーは StackPanel です... これにより、子コントロールがスタックされ、それらに合わせてサイズが変更されます。これを DockPanel (または Grid) に置き換えると、子コントロールが使用可能なスペースを埋めて、目的の結果が得られます...

このmsdnの記事を見てください...これが役立つことを願っています:)

于 2009-12-02T08:06:36.513 に答える