У меня есть следующий 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 пикселей пространства, а текст переносился соответствующим образом, чтобы оставить это пространство. Однако происходит то, что текст переносится как можно ближе к 400 пикселям, а затем кнопка обрезается.
Если я отслеживаю вывод, я вижу, что кнопка отображается с желаемым размером 100 пикселей, но она обрезается со стороны DockPanel.
Если я переверну док-станцию (чтобы кнопка была закреплена «Вправо» и TextBlock заполняется), я получаю нужный макет, но, к сожалению, это не вариант из-за окружающего макета.
Есть ли что-то, что я могу сделать, чтобы сделать DockPanel а) не клипом и б) компоновкой таким образом, чтобы уважать MinWidth? Или я застрял в поиске альтернативного механизма компоновки?
Заранее спасибо!