次のXamlがあります(簡潔にするために簡略化されていますが、XamlpadまたはKaxamlで問題を再現します):
<DockPanel Width="400">
<TextBlock DockPanel.Dock="Left" TextWrapping="Wrap">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Vestibulum massa metus, ornare in fringilla nec, fringilla at orci.
Nunc pharetra enim sit amet sapien aliquet eu euismod turpis vehicula.
Aenean gravida tempus lectus ut ornare.
Nullam massa augue, suscipit vel consectetur fringilla, pretium vitae neque.
</TextBlock>
<Button MinWidth="100" VerticalAlignment="Center" HorizontalAlignment="Left">Hello world</Button>
</DockPanel>
私の問題は、ボタンに最小 100 ピクセルのスペースを確保し、テキストを適切に折り返してそのスペースを残すことです。ただし、テキストが可能な限り 400px 近くで折り返され、Button が切り取られます。
出力をスヌープすると、ボタンが目的の 100 ピクセルでレンダリングされていることがわかりますが、DockPanel の側面から切り取られています。
Dock を逆にすると (ボタンが「右」にドッキングされ、TextBlock が塗りつぶされます)、必要なレイアウトが得られますが、残念ながら周囲のレイアウトのため、それはオプションではありません。
DockPanel を a) クリップしないようにし、b) MinWidth を尊重するようにレイアウトするためにできることはありますか? それとも、別のレイアウト メカニズムを見つけるのに行き詰っていますか?
前もって感謝します!