【发布时间】:2018-06-05 11:57:15
【问题描述】:
在我的 XAML 中,我有一定数量的水平空间。在其中我需要放置一个文本(长度未知),然后是一个按钮。按钮应直接放在文本之后。我正在使用以下 XAML:
<Border Name="Boundaries" MaxWidth="500" MinWidth="500" Height="20">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" TextTrimming="CharacterEllipsis">
Lorem ipsum dolor sit amet, pri ex option legendos. Ludus solet at mel, facilisis urbanitas nam ad.
</TextBlock>
<Button Grid.Column="1">Button</Button>
</Grid>
</Border>
当TextBlock中的文本很短时一切正常,但是当文本足够长时,TextBlock会溢出父元素并且按钮将不可见。为了解决这个问题,我可以将第一列定义的宽度设置为 *,但这意味着按钮总是在右边(即使文本是单个单词,但我希望它在文本之后)。
过去我通过从父级的 ActualSize 设置第一列定义槽转换器的 MaxWidth 来解决类似的问题,但是这非常复杂且非常不可靠。
这样的基本布局要求似乎是 WPF 的一部分,但我找不到任何东西。我错过了什么吗?
【问题讨论】:
-
使用 StackPanel 方向:水平或 WrapPanel