开发者

Silverlight: Set MaxWidth of a textblock to containing column width

in my Silverlight 4 App, I have a simple 3-columns Grid, that contains 3 Textblocks.

        <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>

The width of the Grid depends on the containing user control. Now I want to cap the size of the first and the third textblock to the current size of their containing column, probably using MaxSize and bind it somehow to the size of the Column of the Grid.

Can anyone here tell me how to do this?

Thanks in advance,

Frank


By default the HorizontalAlignment property of the TextBlock is set to "Stretch" so it will fill the available size of the column its in, regardless of its content. Is that what you want?

Perhaps for some reason you do not want the TextBlock to be as wide as the Column it is in if its content does not need all the available space?

If so set the TextBlock.HorizontalAlignment to "Left". The TextBlock will then be only as wide as it needs to be until it reaches the width of the column, then its width will be constrained by the column.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜