Silverlight:将textblock的MaxWidth设置为包含列宽

Silverlight:将textblock的MaxWidth设置为包含列宽,silverlight,expression-blend,Silverlight,Expression Blend,在我的Silverlight 4应用程序中,我有一个简单的3列网格,其中包含3个文本块 <Grid Background="{StaticResource BrushCharacteristicListBoxItemBackground}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="0.5*"/>

在我的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>

网格的宽度取决于包含的用户控件。现在我想将第一个和第三个textblock的大小限制为其包含列的当前大小,可能使用MaxSize并以某种方式将其绑定到网格列的大小

这里有人能告诉我怎么做吗

提前感谢,

Frank

默认情况下,
TextBlock
HorizontalAlignment
属性设置为“拉伸”,因此它将填充其中列的可用大小,而不管其内容如何。这就是你想要的吗

也许出于某种原因,如果
TextBlock
的内容不需要所有可用空间,您不希望它与所在列一样宽


如果是这样,请将
TextBlock.HorizontalAlignment
设置为“Left”。
TextBlock
的宽度将仅与需要的宽度相同,直到达到列的宽度,然后其宽度将受列的约束。

默认情况下,
TextBlock
水平对齐属性设置为“拉伸”,因此它将填充列的可用大小,不管它的内容是什么。这就是你想要的吗

也许出于某种原因,如果
TextBlock
的内容不需要所有可用空间,您不希望它与所在列一样宽


如果是这样,请将
TextBlock.HorizontalAlignment
设置为“Left”。
TextBlock
的宽度将与需要的宽度相同,直到达到列的宽度,然后其宽度将受到列的限制。

这也是我所想的,实际上,我的TextBlock(TextBlockCharacteristicName)的水平对齐设置为左侧。尽管如此,TextBlock的大小并不受列的宽度限制,而是将列的宽度推到适合文本大小的位置textblock@Aaginor:我猜您正在列表框中显示这些网格。为了使*大小调整有意义,放置网格的包含元素必须约束其内容的大小。列表框在内部将内容放置在ScrollViewer中,根据定义,ScrollViewer不会对内容的宽度和高度设置任何限制。嗯,你猜对了!我认为那不重要。那么,在这种情况下,是否有机会实现尺寸限制?我曾考虑将MaxWidth设置为类似于{Binding Grid.Column[0].ActualWidth}的值,但没有找到任何有效的解决方案。这也是我的想法,实际上我的TextBlock(TextBlockCharacteristicName)的水平对齐设置为左侧。尽管如此,TextBlock的大小并不受列的宽度限制,而是将列的宽度推到适合文本大小的位置textblock@Aaginor:我猜您正在列表框中显示这些网格。为了使*大小调整有意义,放置网格的包含元素必须约束其内容的大小。列表框在内部将内容放置在ScrollViewer中,根据定义,ScrollViewer不会对内容的宽度和高度设置任何限制。嗯,你猜对了!我认为那不重要。那么,在这种情况下,是否有机会实现尺寸限制?我曾考虑将MaxWidth设置为类似于{Binding Grid.Column[0].ActualWidth}的值,但没有找到任何有效的解决方案。