我有以下带有RichTextBox的简单wpf程序。我只是尝试将文本文件加载到RichTextBox中。文本文件接近82KB,有4000行。
但问题是如果你没有为RichTextBox指定一个Height参数,那么显示窗口需要10秒以上。但是如果有一个Height参数,那么它会立即显示包含内容的窗口。
namespace WpfApplication1 {
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
string text = System.IO.File.ReadAllText(@"C:\Users\SSSS\Desktop\WriteLines.txt");
Paragraph p = new Paragraph();
Run run = new Run(text) { Foreground = new SolidColorBrush(Color.FromRgb(75, 74, 77)) };
p.Inlines.Add(run);
richTextBox1.Document.Blocks.Add(p);
}
} }
//使用height参数,此加载为第二个
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ScrollViewer Grid.Row="1" Name="scrolBase" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<RichTextBox Height="150" HorizontalAlignment="Left" Name="richTextBox1" VerticalAlignment="Top" Width="313" IsReadOnly="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto">
<FlowDocument PageWidth="1000" />
</RichTextBox>
</ScrollViewer>
</Grid>
</Window>
//没有高度参数,这需要10秒才能加载
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ScrollViewer Grid.Row="1" Name="scrolBase" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<RichTextBox HorizontalAlignment="Left" Name="richTextBox1" VerticalAlignment="Top" Width="313" IsReadOnly="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto">
<FlowDocument PageWidth="1000" />
</RichTextBox>
</ScrollViewer>
</Grid>
</Window>
我真正的应用程序比这要大得多(没有高度且高度小于20秒需要花费超过3分钟),我花了一天半的时间来弄清楚应用程序加载速度慢的原因。有时这个问题将是其他一些问题的答案。你们有谁知道这个的原因吗?