WPF: TextBlock с обернутым текстом должен наследовать ширину - PullRequest
0 голосов
/ 05 июля 2011

У меня есть следующий XAML:

            <StackPanel>
                <StackPanel Orientation="Horizontal">
                    <Border Name="B1" Width="Auto">
                        <DataGrid />
                    </Border>
                    <Border Name="B2" Width="Auto">
                        <DataGrid />
                    </Border>
                </StackPanel>
                <Border Name="B3" Width="Auto">
                    <TextBlock TextWrapping="Wrap"
                               Text="{Binding}"/>
                </Border>
            </StackPanel>

По сути, границы B1 и B2 расположены рядом друг с другом сверху, а B3 - под ними.B1 и B2 динамически изменяют свою ширину в зависимости от того, что происходит в их содержимом.Я хочу, чтобы ширина B3 была суммой ширины B1 и B2 с переносом слов потенциально длинного текста в TextBlock.

Приведенный выше XAML приводит к тому, что текст в TextBlock не переносится,в результате B3 будет намного шире, чем B1 + B2.

Я хочу, чтобы B3.width наследовал от ширины главной StackPanel, которая будет установлена ​​B1.width + B2.width, и я хотел бы сделатьесли возможно, без кода.

Есть идеи?

1 Ответ

4 голосов
/ 05 июля 2011
<StackPanel x:Name="stk">
    <StackPanel Orientation="Horizontal" x:Name="stk1" HorizontalAlignment="Left" >
        <Border Name="B1"
                Width="Auto">
            <ListBox Width="200" Height="200"></ListBox>
        </Border >
        <Border Name="B2"
                Width="Auto">
            <ListBox Width="200"></ListBox>
        </Border>
    </StackPanel>
    <Border Name="B3"
            Width="{Binding Path=ActualWidth,ElementName=stk1}" HorizontalAlignment="Left">
        <TextBlock TextWrapping="NoWrap"
                   Text="testddddddddddddddddddddddddddddddddddd" />
    </Border>
</StackPanel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...