0

我对网格的 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 中定义行和列?

谢谢你。

4

2 回答 2

0

我不确定我是否正确理解了这个问题,但要让文本换行,你不需要跨越多行。从我读过的内容来看,您已将列宽设置为自动,这样它就可以让TextBlock“增长”自由。如果要使包装正常工作,则应在列上或TextBlock本身上定义固定宽度(并保留TextWrapping="Wrap")。

于 2013-09-25T16:15:28.567 回答
-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>

我给出了自己的内容进行测试。如果它溢出,请告诉我。

于 2013-09-26T07:05:02.263 回答