Проблема размера для содержимого в WPF - PullRequest
7 голосов
/ 29 октября 2008

Это должно быть легко, но я все еще не могу понять это.

В моем примере приложения есть кнопка и текстовое поле в панели . Если содержимое текстового поля меньше, чем содержимое текстового поля, окно будет настолько большим, насколько это необходимо для отображения содержимого кнопки. Это то, что я хочу. Но если я добавлю больше текста в текстовое поле, окно станет шире: - (

Мне нужно поведение, состоящее в том, чтобы окно получало ширину в соответствии с содержимым кнопок, а текстовое поле оборачивает его содержимое (или / и показывает полосы прокрутки, если необходимо).

Спасибо!

Пример кода:

<Window x:Class="SO1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" SizeToContent="Width" FontSize="20">
    <DockPanel>
        <Button DockPanel.Dock="Top">A rather long text</Button>
        <TextBlock TextWrapping="Wrap">Short text</TextBlock>
    </DockPanel>
</Window>

1 Ответ

7 голосов
/ 29 октября 2008

Испытав это, кажется, что связывание TextBlock s MaxWidth с ActualWidth из Button достигает эффекта, которого вы добиваетесь:

<Button x:Name="btn" DockPanel.Dock="Top">Short text</Button>
<TextBlock TextWrapping="Wrap" 
  MaxWidth="{Binding ElementName=btn,Path=ActualWidth}">A rather long text</TextBlock>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...