我想做文本换行并显示一个垂直滚动条,当我有多行文本但文本根本没有被包装。这是我的xaml
<StackPanel Name="panel">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel
Grid.Row="0"
Grid.Column="0"
Orientation="Horizontal"
Background="Yellow">
<TextBlock Text="Text:" />
<ScrollViewer
BorderThickness="0"
Height="33"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled">
<TextBlock TextWrapping="Wrap" Text="{Binding Name}"/>
</ScrollViewer>
</StackPanel>
</Grid>
</StackPanel>
有人可以告诉我为什么文字不会在屏幕的末尾换行吗?
由于
答案 0 :(得分:3)
这里发生的是您的内部StackPanel(以及每个StackPanel)不会将其子项约束到StackPanel中的“可见”空间。因此,滚动查看器感觉具有无限空间,文本块也是如此。网格本身可以做到:
<StackPanel Name="panel">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="Text:" />
<ScrollViewer Grid.Column="1"
BorderThickness="0"
Height="33"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled">
<TextBlock TextWrapping="Wrap"
Text="YourText" />
</ScrollViewer>
</Grid>
</StackPanel>