私のXAMLでは、ある程度の水平スペースがあります。その中には、(長さが不明な)テキストとそれに続くボタンを置く必要があります。ボタンはテキストの直後に配置する必要があります。私は、次のXAMLを使用しています:TextBlock内のテキストが短い場合WPFグリッドサイジングAuto vs Star
<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のは、親要素とボタンは表示されませんオーバーフローします。これを修正するために、最初の列定義の幅を*に設定することができますが、これはボタンが常に右側にあることを意味します(テキストは単一ワードですが、テキストの直後にしたい)。
過去の私は、親のActualSizeから最初の列定義トラフコンバータのMaxWidthを設定することで同様の問題を解決しましたが、これはかなり複雑で非常に信頼性がありません。
このような基本レイアウト要件はWPFの一部であると思われますが、何も見つかりませんでした。何か不足していますか?
使用のStackPanel:水平、またはWrapPanel – sTrenat