WPF 对齐拉伸(stretch)

标签 wpf vertical-alignment stretch

谁能帮我理解 WPF 拉伸(stretch)对齐。我经常遇到这样的问题,我想要一个控件来填充一个区域,但我从来不明白我应该把 VerticalAlignment="Stretch"放在什么级别。特别是当涉及到用户控件时。

我总是通过尝试不同的事情或在各个层面上进行拉伸(stretch)来解决问题,但我想了解如何正确地做到这一点。

让我们以我现在得到的例子为例:

  • 我有一个带有固定大小单元格的网格(可以使用 GridSplitter 调整大小)
  • 在这个单元格中,我有一个 UserControl,其中包含一个带有 TabControl 的 StackPanel
  • 在 TabControl 中,我有包含另一个带有 ListView 的 UserControl 的 TabItems

或者在某种伪 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 和边距)。

最佳答案

您的 ListView 将填充您的 MyUserControl2 - 如果您希望它适合整个选项卡,您需要确保删除 UserControl 的 xaml 文件中的高度和宽度约束(这些将默认为每个 300)

编辑:抱歉 - 我跳过了您的 xaml 的重要部分...MyUserControl1 容器是一个 StackPanel...这将堆叠子控件并调整大小以适合它们;如果您用 DockPanel(或 Grid)替换它,子控件将填充可用空间并为您提供您想要的结果...

看看this msdn 文章...希望这有帮助:)

关于WPF 对齐拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1831286/

相关文章:

WPF绑定(bind)到xaml中的多维数组

css - 图像无拉伸(stretch)或裁剪

html - 使用隐式宽度和无空格换行防止元素拉伸(stretch)

c# - 使图像变亮/变暗/透明部分

c# - WPF 中的自定义鼠标光标大小

html - 在较小的 div 中垂直居中大图像

html - Bootstrap 内联元素

css - anchor 不会在列表项内垂直居中

javascript - HTML5 如何让 canvas 不拉伸(stretch)页面?

c# - 文本框中仅允许字母数字