是否可以根据内容将行的最小高度设置为动态?简要说明:
我有这个UI:
整个事情被划分为一个有两行的网格,一个*高度,顶部消息是另一个" Auto"底部选项按钮所在的高度。这适用于完整的UI,因为它将按钮堆叠在我想要的底部,文本位于顶部空白部分的中心位置。
然而,当我把它做得足够小以致不是一切都适合时,它开始覆盖消息文本并留下底部按钮。我可以在顶行发送一个最小高度,当顶行达到最小尺寸时,它开始切断最近的文件,因为它很少会变得那么小,并删除旧的最近文件并不是什么大不了的事。
所以主要的问题是消息可以根据其他代码的结果而改变,它可能是几行,也可能只是一行。我可以硬编码最小高度,但是如果我把它做得足够大以适应更长的信息,那么在一个衬垫周围有一个很大的余量,如果我适合一个衬垫,它会切断较长的衬垫。此外,由于文本换行,文本消息的高度取决于窗口的宽度,该窗口的宽度也是可变的。有可能告诉WPF行的最小高度是内容高度加上边距吗?
如果不可能,我绝对可以忍受硬编码的高度,所以不要花很多时间,但我认为值得问:)
答案 0 :(得分:1)
我会在height=Auto
的第一行和height=*
的第二行记住添加TextWrapping=Wrap
并将边距添加到第二行的第一个项目/面板
例如简单的例子
<Grid Width="200">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="some text in the top" TextWrapping="Wrap"></TextBlock>
<ListBox Grid.Row="1" Margin="0,20"/>
</Grid>
您可能需要ScrollViewer
缠绕Grid
以应对不同大小的Windows