【问题标题】:How do you control the height of a scrollviewer inside a tabitem?您如何控制 tabitem 中滚动查看器的高度?
【发布时间】:2015-05-28 00:04:21
【问题描述】:

我无法将滚动查看器的高度调整为 tabitem 的高度。

XAML:

<TabItem header="Item">
    <ScrollViewer Height={Binding ActualHeight, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=TabItem}}>
        <Grid>
          .
          .
          .
        </Grid>
    </ScrollViewer>
</TabItem>

当我这样做时,滚动查看器只有大约 50 像素高。里面的内容显示正常。可视区域高度有限。

我试过了。

<TabItem header="Item" x:Name="itemname">
 <ScrollViewer Height="{Binding ElementName="itemname", Path=ViewportHeight}">

scrollviewer 不受限制,但当里面的内容 scrollviewer 增长它超出了查看区域和滚动条 deos 不工作。

我在 StackPanel 中使用了第一个 (FindAncestor) 示例,它可以工作。不知道为什么它不会与 TabItem 一起使用。

【问题讨论】:

  • 有趣的笔记。我试图在后面的代码中将 ScrollViewer 的高度设置为 TabItem 的高度。它没有用。当我调试它时,TabItem 的高度是 Nan。如何获取 TabItem 的高度?
  • 这可能解释了 FindAncestor 与 StackPanel 父级一起工作的原因。由于某种原因,未设置 TabItem 的高度。
  • 我放弃了,只是通过观察屏幕将高度设置为固定数字。太糟糕了,我想不出一种动态的方法。
  • 这很奇怪。我以为现在有人会想通了。也许我只是不会使用 tabcontrol 和 tabitems。
  • 似乎 tabitem 的高度模糊不清,并根据其子项的高度进行调整。因此,将 tabitem 的高度设置为您想要的高度的唯一方法是设置其子项的高度。太糟糕了。

标签: wpf


【解决方案1】:

为什么不使用HorizontalAlignment / VerticalAlignment 属性?

<ScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretech">

【讨论】:

  • 这与将高度绑定到 TabItem 的 ElementName 的效果相同。高度设置为超出 TabItem 的查看区域,并且滚动条被禁用。
猜你喜欢
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
  • 2019-12-10
  • 2015-11-26
  • 2022-08-18
  • 1970-01-01
  • 2011-03-23
  • 2020-06-03
相关资源
最近更新 更多