我有一个RichTextBlock和一些文字,我不想使用垂直和水平卷轴。如果我添加了一个大文本,就会隐藏一些文本。如何获得隐藏的文本,或者如何获得当前而不是隐藏的文本?我的RichTextBlock集的大小动态。TextWrapping=的“包扎”设置。
<RichTextBlock x:Name="BookViewer" HorizontalAlignment="Left" Height="525" Margin="63,0,0,0" Grid.Row="1" TextWrapping="Wrap" VerticalAlignment="Top" Width="1246" TextAlignment="Justify" > </RichTextBlock> 代码隐藏:
private void SetText(string value) { BookViewer.Blocks.Clear(); Run myRun = new Run(); myRun.Text = value; Paragraph myParagraph = new Paragraph(); myParagraph.Inlines.Add(myRun); BookViewer.Blocks.Add(myParagraph); } 发布于 2013-11-26 01:13:13
我想知道RichTextBlockOverflow是否能在那里帮助你。否则--您需要继续添加更多的文本,并通过调用Measure()+Arrange()和检查ActualWidth/ActualHeight来查看文本何时开始溢出。如果这听起来很笨拙--您可以使用DirectWrite,它可能更快,更适合处理自定义布局。
发布于 2013-11-25 22:50:17
确保您没有意外地将包装设置为无包装。还有,这个盒子有任何限制吗?
默认情况下,文本包装设置为true:
<RichTextBlock TextWrapping="Wrap"/>关于msdn的TextWrapping文档
使用您发布的代码:
<Page
x:Class="Wrap.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Wrap"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<RichTextBlock x:Name="BookViewer"
HorizontalAlignment="Left"
Height="525"
Margin="63,0,0,0"
Grid.Row="1"
TextWrapping="Wrap"
VerticalAlignment="Top"
Width="1246" TextAlignment="Justify" >
</RichTextBlock>
</Grid>
以及代码背后:
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
var str = "Bacon ipsum dolor sit amet ball tip tenderloin pork loin, tri-tip beef jowl pork belly capicola beef ribs ham bacon pig. Pork chop ball tip leberkas spare ribs pork belly pastrami shoulder ham hock andouille kielbasa short loin corned beef tenderloin chicken venison. Sausage jowl beef salami spare ribs ball tip. Swine brisket pancetta biltong shankle rump ground round jerky sausage. Rump beef chuck, salami leberkas jowl hamburger pancetta short loin tenderloin swine ground round ham. Meatloaf ball tip flank short loin boudin brisket t-bone pork chop." +
"Rump tri-tip pork drumstick kielbasa tenderloin shank beef ribs pig prosciutto swine spare ribs meatball ham. Pork pork loin t-bone, chicken turducken pork belly meatloaf bacon shankle sirloin pancetta shank drumstick. Kielbasa doner shoulder turducken sirloin pancetta, venison bacon corned beef beef pork belly shank. Bresaola drumstick short ribs t-bone. Tenderloin biltong salami, swine kielbasa shoulder short loin sirloin turducken capicola. Cow tri-tip jowl ground round short loin tail. Ribeye corned beef ball tip pork belly swine capicola chuck." +
"Rump tri-tip pork drumstick kielbasa tenderloin shank beef ribs pig prosciutto swine spare ribs meatball ham. Pork pork loin t-bone, chicken turducken pork belly meatloaf bacon shankle sirloin pancetta shank drumstick. Kielbasa doner shoulder turducken sirloin pancetta, venison bacon corned beef beef pork belly shank. Bresaola drumstick short ribs t-bone. Tenderloin biltong salami, swine kielbasa shoulder short loin sirloin turducken capicola. Cow tri-tip jowl ground round short loin tail. Ribeye corned beef ball tip pork belly swine capicola chuck.";
SetText(str);
}
private void SetText(string value)
{
BookViewer.Blocks.Clear();
Run myRun = new Run();
myRun.Text = value;
Paragraph myParagraph = new Paragraph();
myParagraph.Inlines.Add(myRun); BookViewer.Blocks.Add(myParagraph);
}
}代码包装得很好。图片:

包装是受周围的包含,粘贴一些代码,我们可能会有帮助。
如果行被压缩,框及其内容也会被压缩。
最后一次编辑,使用大文本,您将遇到问题。

使用ViewBox和拉伸属性来获得想要的效果,比如:
<Viewbox Grid.Row="1" StretchDirection="DownOnly">
<RichTextBlock FontSize="65" Width="3000" x:Name="BookViewer">
</RichTextBlock>
</Viewbox>结果:

你应该能够从这里接受它:)祝你好运。请记住,您需要在viewbox中设置一个限制容器以获得包装。
文档:ViewBox
https://stackoverflow.com/questions/20204313
复制相似问题