我在网格的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中定义行和列?
谢谢。
答案 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>
我提供了自己的内容进行测试。如果它溢出让我知道。