C#学习教程:WPF:从文本框中获取“wrapped”文本出现在文本框中?我试过使用TextFormatter类,但它允许我将文本绘制到绘图上下文中,我只需要包含换行符的文本。下面介绍如何获取带有明显换行符的全文。注意:CustomTextSource类中提到了一些限制。但是,我相信您的请求不受这些限制的影响。这些只是一些例子。您可能希望根据需要修改代码。该代码仍然使用hack(尽管是一个不错的hack)-InputTextBox.ViewportWidth。您可能想要测试最终输出是否完全符合要求。请参阅:高级文本格式和高级文本格式示例示例代码XAML:代码隐藏:privatevoidCopyButton_Click(objectsender,RoutedEventArgse){ListstringList=GetTextAsStringList();StringBuildersb=newStringBuilder();foreach(stringList中的字符串s){sb.Append(s);sb.Append("rn");}Clipboard.SetData(System.Windows.DataFormats.Text,sb.ToString());FormattedDisplayTextBox.Clear();FormattedDisplayTextBox.Text=sb.字符串();}privateListGetTextAsStringList(){ListstringList=newList();int位置=0;stringinputText=InputTextBox.Text;CustomTextSourcestore=newCustomTextSource();store.Text=inputText;store.FontRendering=newFontRendering(InputTextBox.FontSize,InputTextBox.TextAlignment,null,InputTextBox.Foreground,newTypeface(InputTextBox.FontFamily,InputTextBox.FontStyle,InputTextBox.FontWeight,InputTextBox.FontStretch));using(TextFormatterformatter=TextFormatter.Create()){while(为此,您必须使用文本测量API编写自己的逻辑。第1步:将文本框文本刷新为单词。第二步:然后测量每个字的宽度,并组合起来,直到线宽小于文本框的宽度。请参阅描述文本测量过程的这篇文章。(social.msdn.microsoft.com/forums/en-US/wpf/thread/...)请参阅IanGriffiths对这个问题的回答:从TextBlock获取显示的文本它从TextBlock获取显示的文本(因为它显示在屏幕),但我认为你应该能够将它用于文本框,如果你想要的只是文本框的文本(全文而不仅仅是可见部分),作为文本显示在与某些文本块相同的窗口中(与明显的换行),快速破解可能是:FormattedTextft=newFormattedText(textBox1.Text,System.Globalization.CultureInfo.CurrentCulture,textBox1.FlowDirection,newTypeface(textBox1.FontFamily,textBox1.FontStyle,textBox1.FontWeight,textBox1.FontStretch),textBox1.FontSize,textBox1.Foreground);ft.TextAlignment=textBox1.TextAlignment;ft.Trimming=TextTrimming.None;ft.MaxTextWidth=textBox1.ViewportWidth;textBlock1.Width=textBox1.ViewportWidth;textBlock1.Height=ft.Height;textBlock1.TextAlignment=textBox1.TextAlignment;textBlock1.TextWrapping=textBox1.TextWrapping;textBlock1.Text=textBox1.Text;如果您在其他地方需要它,您可以将该值通过管道传递到该位置,然后在文本块上使用它们。如果您需要作为字符串列表(例如List)的完整文本(带有明显的换行符),其中每个项目代表一条视线,您将需要一个复杂的解决方案。此外,如果您只需要在文本框中显示文本的可见部分,您将需要一些复杂的解决方案。以上就是C#学习教程:WPF:从文本框获取“打包”文本分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
