Silverlight: установите для MaxWidth текстового блока значение ширины столбца - PullRequest
1 голос
/ 02 декабря 2010

в моем приложении Silverlight 4 у меня есть простая сетка из 3 столбцов, которая содержит 3 текстовых блока.

        <Grid Background="{StaticResource BrushCharacteristicListBoxItemBackground}">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.5*"/>
                <ColumnDefinition Width="10"/>
                <ColumnDefinition Width="0.5*"/>
            </Grid.ColumnDefinitions>
            <TextBlock x:Name="TextBlockCharacteristicName" Text="{Binding Property1}" HorizontalAlignment="Left" TextTrimming="WordEllipsis" ToolTipService.ToolTip="{Binding Text}" Margin="6,0,0,0" />
            <TextBlock x:Name="TextBlockSeperator" Text="=" Grid.Column="1" />
            <TextBlock x:Name="TextBlockCharacteristicValue" Text="{Binding Property3}" Grid.Column="2" HorizontalAlignment="Right" Margin="0,0,6,0" />
        </Grid>

Ширина сетки зависит от содержащегося пользовательского элемента управления.Теперь я хочу ограничить размер первого и третьего текстовых блоков текущим размером их содержащего столбца, возможно, используя MaxSize, и каким-то образом связать его с размером столбца таблицы.мне как это сделать?

Заранее спасибо,
Фрэнк

1 Ответ

1 голос
/ 02 декабря 2010

По умолчанию свойство HorizontalAlignment TextBlock установлено в значение «Растянуть», поэтому оно будет заполнять доступный размер столбца, независимо от его содержимого.Это то, что вы хотите?

Возможно, по какой-то причине вы не хотите, чтобы TextBlock был таким же широким, как столбец, в котором он находится, если его содержимому не требуется все доступное пространство?

Если это так, установите TextBlock.HorizontalAlignment на «Влево».Тогда TextBlock будет иметь ширину, равную , пока не достигнет ширины столбца, тогда его ширина будет ограничена столбцом.

...