TextBlock或RichTextBox给我修剪文本
本文关键字:修剪 文本 RichTextBox TextBlock | 更新日期: 2023-09-27 18:15:39
我通过XML解析从服务器API获得原始文本。我正在检查全文是进入数组/列表,但它得到修剪时,显示在页面内的textblock或richtextbox。
下面是Listbox的XAML,它包含了我的richtextbox:
<ListBox Name="ListboxPolicy" Background="#FF5F113C" Opacity="0.93" Foreground="#FFF5E0EC" Margin="0,137,0,0">
<ListBox.ItemTemplate>
<DataTemplate >
<StackPanel>
<!--<TextBlock x:Name="PolicyText" TextAlignment="Justify" Text="{Binding policyDetailsData}" TextWrapping="Wrap" IsHitTestVisible="False"/>-->
<RichTextBox x:Name="BoxPolicies" IsHitTestVisible="False" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" SizeChanged="BoxPolicies_SizeChanged" >
<Paragraph FontSize="24" FontWeight="Bold" Foreground="#FFDABCD5">
<Run Text="{Binding Path=policyTitleData}" />
</Paragraph>
<Paragraph FontSize="20" TextAlignment="Justify" >
<Run Text="{Binding Path=policyDetailsData}" />
</Paragraph>
<Paragraph FontSize="20">
<Run Text="-----------------------------" />
</Paragraph>
</RichTextBox>
<!--<TextBlock x:Name="PolicyHeader" Text="{Binding policyTitleData}" TextWrapping="Wrap" IsHitTestVisible="False" Foreground="#FF13090E" FontWeight="Bold" FontSize="22"/>
<TextBlock x:Name="PolicyText" Text="{Binding policyDetailsData}" TextWrapping="Wrap" IsHitTestVisible="False" FontSize="20"/>-->
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
StackPanel的默认方向是垂直的,它需要子元素的高度和宽度(这里是RichTextBox),如果你不设置高度和宽度到StackPanel
为了避免文本修剪,你需要设置StackPanel方向="水平"和高度和宽度为RichtextBox
<StackPanel Orientation="Horizontal">
<RichTextBox x:Name="BoxPolicies" IsHitTestVisible="False" Height="400" Width="400" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<FlowDocument >
<Paragraph FontSize="24" FontWeight="Bold" Foreground="Red">
<Run />
</Paragraph>
<Paragraph FontSize="20" TextAlignment="Justify" >
<Run />
</Paragraph>
</FlowDocument>
</RichTextBox>
</StackPanel>
由于性能原因,单个TextBlock中可以显示的文本数量是有限的。对我来说有效的是将文本分成段落,将每个段落放在单独的TextBlock中,并将所有段落添加到StackPanel中。
在这篇博文中有一个实现的解决方案