首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RichTextBlock WinRT中的符号计数

RichTextBlock WinRT中的符号计数
EN

Stack Overflow用户
提问于 2013-11-25 22:02:32
回答 2查看 195关注 0票数 0

我有一个RichTextBlock和一些文字,我不想使用垂直和水平卷轴。如果我添加了一个大文本,就会隐藏一些文本。如何获得隐藏的文本,或者如何获得当前而不是隐藏的文本?我的RichTextBlock集的大小动态。TextWrapping=的“包扎”设置。

代码语言:javascript
复制
<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> 

代码隐藏:

代码语言:javascript
复制
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); } 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-26 01:13:13

我想知道RichTextBlockOverflow是否能在那里帮助你。否则--您需要继续添加更多的文本,并通过调用Measure()+Arrange()和检查ActualWidth/ActualHeight来查看文本何时开始溢出。如果这听起来很笨拙--您可以使用DirectWrite,它可能更快,更适合处理自定义布局。

票数 0
EN

Stack Overflow用户

发布于 2013-11-25 22:50:17

确保您没有意外地将包装设置为无包装。还有,这个盒子有任何限制吗?

默认情况下,文本包装设置为true:

代码语言:javascript
复制
<RichTextBlock TextWrapping="Wrap"/>

关于msdn的TextWrapping文档

使用您发布的代码:

代码语言:javascript
复制
<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>

以及代码背后:

代码语言:javascript
复制
    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和拉伸属性来获得想要的效果,比如:

代码语言:javascript
复制
        <Viewbox  Grid.Row="1" StretchDirection="DownOnly">
        <RichTextBlock FontSize="65" Width="3000" x:Name="BookViewer">
        </RichTextBlock>
    </Viewbox>

结果:

你应该能够从这里接受它:)祝你好运。请记住,您需要在viewbox中设置一个限制容器以获得包装。

文档:ViewBox

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20204313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档