silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight – 以编程方式确定文本框中的最大适合度(WP7)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我目前正在为Windows Phone Seven编写电子书阅读器,我正试图像Kindle阅读器那样设计它.为了做到这一点,我需要将我的书分成页面,当添加可变字体大小时,这将变得更加复杂. 为了做到这一点,我只是一次在文本块中添加一个单词,直到它变得高于它的容器.但是你可以想象,如果有一个超过120,000字的文件,这将花费一段不可接受的时间. 有没有一种方法可以找出文本何时超出界限(逻辑上将其划
我目前正在为Windows Phone Seven编写电子书阅读器,我正试图像Kindle阅读器那样设计它.为了做到这一点,我需要将我的书分成页面,当添加可变字体大小时,这将变得更加复杂.

为了做到这一点,我只是一次在文本块中添加一个单词,直到它变得高于它的容器.但是你可以想象,如果有一个超过120,000字的文件,这将花费一段不可接受的时间.

有没有一种方法可以找出文本何时超出界限(逻辑上将其划分为页面),而不必实际呈现它?这样我就可以后台线程中运行它,这样用户可以在此期间继续阅读.

到目前为止,我发现的唯一想法是找出文本块如何决定其边界(在度量调用中?),但我不知道如何找到该代码,因为反射器没有显示任何内容.

提前致谢!

解决方法@H_772_30@
做了类似的事情来调整单个文本框的字体大小(以确保它们都适合).基本上,我在代码中创建一个TextBlock,设置我的所有属性并检查ActualWidth和ActualHeight属性.这里有一些伪代码可以帮助解决您的问题:

public static String PageText(TextBlock txtPage,String BookText)
{
    TextBlock t = new TextBlock();
    t.FontFamily = txtPage.FontFamily;
    t.FontStyle = txtPage.FontStyle;
    t.FontWeight = txtPage.FontWeight;
    t.FontSize = txtPage.FontSize;
    t.Text = BookText;

    Size Actual = new Size();
    Actual.Width = t.ActualWidth;
    Actual.Height = t.ActualHeight;

    if(Actual.Height <= txtPage.ActualHeight)
        return BookText;

    Double hRatio = txtPage.ActualHeight / Actual.Height;
    return s.SubString((int)((s.Length - 1) * hRatio));
}

大佬总结

以上是大佬教程为你收集整理的silverlight – 以编程方式确定文本框中的最大适合度(WP7)全部内容,希望文章能够帮你解决silverlight – 以编程方式确定文本框中的最大适合度(WP7)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。