在WPF中,当没有高度时,RichTextBox需要很长时间才能加载

时间:2015-05-21 06:55:04

标签: c# wpf

我有以下带有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分钟),我花了一天半的时间来弄清楚应用程序加载速度慢的原因。有时这个问题将是其他一些问题的答案。你们有谁知道这个的原因吗?

0 个答案:

没有答案