我的rowSpan不需要2行

时间:2013-09-25 09:22:59

标签: silverlight xaml grid

我在网格的rowSpan属性中遇到了一个奇怪的问题。

我有一个文本,它将占用多行,所以我告诉他的堆栈区域RowSpan="2",所以文本可以在多行上,使用Wrapping to,如下所示:

<StackPanel Grid.Row="0"
            Grid.RowSpan="2"
            Orientation="Horizontal">
    <TextBlock x:Name="tbConfirm" 
               Text={Binding TextConfirm} 
               HorizontalAlignment="Center" 
               TextWrapping="Wrap"
               VerticalAlignment="Center" 
               Grid.RowSpan="2"
               FontSize="12">
    </TextBlock>
</StackPanel>

属性TextConfirm包含一个应该占用两行的文本(我尝试使用没有绑定的文本来查看它是否填充。

但是,尽管我的RowSpan和我的TextWrapping,它仍然在一条线上,并且不明白为什么。

当我创建列跨度时,它将采用列定义的数量,但为什么行跨度不起作用?

网格中有5列(宽度自动)和5行(高度自动)定义。

如果我想要一个文本块,一个文本框和另一个文本块。

如何判断自动进入新行? 两个文本块的未定义宽度,并定义文本框的宽度。

这只是一个例子,我现在还没写过。

    <StackPanel Grid.Row="0"
                Grid.RowSpan="2"
                Orientation="Horizontal">
        <TextBlock x:Name="tbConfirm" 
                   Text={Binding TextConfirm} 
                   HorizontalAlignment="Center" 
                   TextWrapping="Wrap"
                   VerticalAlignment="Center" 
                   Grid.RowSpan="2"
                   FontSize="12">
        </TextBlock>        

<textBox width ="200"/>
<TextBlock x:Name="tbConfirm2" 
                   Text={Binding TextConfirm2} 
                   HorizontalAlignment="Center" 
                   TextWrapping="Wrap"
                   VerticalAlignment="Center" 
                   Grid.RowSpan="2"
                   FontSize="12">
        </TextBlock>
    </StackPanel>

这会在必要时自动转到新线吗?或者我是否需要在xaml中定义行和列?

谢谢。

2 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解了这个问题,但是为了得到文字包装,你不需要跨越多行。根据我的阅读,您已将列宽设置为自动,因此它会让TextBlock&#34;增长&#34;自如。如果您想让包装工作,您应该在列上或TextBlock本身上定义固定宽度(并保留TextWrapping="Wrap")。

答案 1 :(得分:-1)

尝试将文本块的宽度绑定到父文件的宽度,因为您不希望它超过

<TextBlock x:Name="tbConfirm" 
           Text="asasddadsa adassdasd asdasdasdsa asdasdssd asdasdasjdahsjakdhksajdhjsaalskasj skjdsajkdhajhasaskjhdsahsakdasjdhsajdhasjdhkjsad" 
           HorizontalAlignment="Center"
                   Foreground="Black"

                   Width="{Binding ActualWidth, ElementName=stackPanelParent}"
           TextWrapping="Wrap"
           VerticalAlignment="Center" 
           FontSize="12">

        </TextBlock>

我提供了自己的内容进行测试。如果它溢出让我知道。