c# - 如何在不滚动的情况下查找文本框中适合的文本量

标签 c# textbox windows-runtime winrt-xaml

我有一个比较大的文本。我需要将一定数量的文本添加到文本框,以便无需滚动即可看到它,然后将其余文本添加到另一个文本框,然后另一个 -.-.-.> 循环生成尽可能多的文本框有必要的。

我的问题是我不知道如何找出每个文本框中有多少文本。到目前为止,我唯一能做的就是分配适合页面的固定数量的字符。但这不适用于不同的屏幕分辨率。有没有一种方法、技巧或变通方法可以用来计算有多少文本可以放入具有固定字体和字体大小但相对宽度和高度的文本框?

int TextLength = 1000, PageStart = 0;

List<TextBox> Pages = new List<TextBox>();  
while (PageStart < TextLength) 
{
     TextBox p = new TextBox();
      if (PageStart + PageLength < TextLength)
      {
             p.PageText = Text.Substring(PageStart, PageLength);
             PageStart += PageLength;
             Pages.Add(p);
      }
      else
      {
             PageLength = TextLength - PageStart;
             p.PageText = Text.Substring(PageStart, PageLength);
             Pages.Add(p);
             break;
       }                      
  }

最佳答案

您可能最好使用 TextBlock。除此之外,TextBlock 测量技术也适用于 TextBoxes - how to calculate the textbock height and width in on load if i create textblock from code?

您需要在增加文本量的同时测量 ActualHeight,直到超出限制。

关于c# - 如何在不滚动的情况下查找文本框中适合的文本量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676240/

相关文章:

c# - WinRT 中 TextBlock 的外发光效果

c# - 未找到类型 x 的构造函数 - Glass Mapper Language

javascript - 使用 Javascript 动态添加文本框的值

c# - 如何在 C# 中的鼠标单击事件中的窗体中的图像上绘制文本

html - 如何在悬停时更改文本框内容

html - 如何更改文本框的样式? (HTML/CSS)

multithreading - C# 应用程序中使用的 C++ WinRT DLL 中出现 "Activating a single-threaded class from MTA is not supported"错误

c# - 我可以将旧的 c# 库与 WinJS 一起使用吗?

c# - ASP.Net Core 注入(inject)设置

c# - 从 T4 更改 EF 6 代码生成策略