我有以下 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>
我的问题是我希望 Button 占用其最小 100px 的空间,并让文本适当地换行以离开该空间。但是,发生的情况是文本尽可能接近 400px 换行,然后 Button 被剪裁。
如果我窥探输出,我可以看到按钮以所需的 100 像素呈现,但它被从 DockPanel 的一侧剪掉了。
如果我反转 Dock(所以按钮停靠“右”并且 TextBlock 填充)然后我得到我想要的布局,但不幸的是,由于周围的布局,这不是一个选项。
我可以做些什么来使 DockPanel a)不剪辑和 b)以尊重 MinWidth 的方式布局?还是我一直在寻找替代布局机制?
提前致谢!