【发布时间】: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