【问题标题】:rtf layout changed after loading into richtextbox wpf c#rtf布局在加载到richtextbox wpf c#后改变
【发布时间】:2015-08-23 20:57:28
【问题描述】:

我有一个 rtf,当我在 word 中打开它时,它的布局显示完美,但是当我尝试在我的 wpf 应用程序的richtextbox 中打开它时,布局已关闭,我希望保持不变。有没有办法做到这一点?读取文件的不同方式?

这是我用来加载 rtf 文件的代码

openFile.InitialDirectory = @"C:\";
openFile.Filter = "Text files (*.rtf)|*.rtf|All Files (*.*)|*.*";
openFile.RestoreDirectory = true;
openFile.Title = "Select Script";

if (openFile.ShowDialog() == true)
{
    string originalfilename = System.IO.Path.GetFullPath(openFile.FileName);

    TextRange range;
    FileStream fStream;

    if (openFile.CheckFileExists)
    {
         range = new TextRange(rtfMain.Document.ContentStart, rtfMain.Document.ContentEnd);
         fStream = new FileStream(originalfilename, System.IO.FileMode.OpenOrCreate);
         range.Load(fStream, DataFormats.Rtf);
         fStream.Close();
    }
}

这是xaml

 <RichTextBox IsReadOnly="True" x:Name="rtfMain" HorizontalAlignment="Left" Width="673" VerticalScrollBarVisibility="Visible"/>

这是原版的样子

这就是它在 wpf 的 Richtextbox 中的样子

【问题讨论】:

  • 添加一张图片显示“layout is off”的原因和方式可能比发布仅加载rtf的代码更有帮助。你怀疑代码有错误吗?
  • 我在想可能有更好的方法来阅读文档,以便在 Richtextbox 中更准确地显示它
  • 刚刚添加图片来说明问题
  • 尝试保存 rft 并与原始的比较(你将不得不使用一些十六进制查看器),也许这会给你一个线索是什么问题。如果两个 rtf 相同,则取决于RichTextBox 如何显示 rtf。我看到第一段的左边有一个空白,这似乎被忽略了。也许是因为你在Load之前没有使用SelectAll()

标签: c# wpf text richtextbox rtf


【解决方案1】:

试试这样的:

 if (openFile.CheckFileExists)
    {
      range = new TextRange(rtfMain.Document.ContentStart, rtfMain.Document.ContentEnd);
      using (var fStream = new StreamReader(originalfilename, Encoding.Default,true))
      {
        range.Text = fStream.ReadToEnd();
      }
    }

在 xaml 中:

<RichTextBox IsReadOnly="True" x:Name="rtfMain" HorizontalAlignment="Left" 
                     Width="673" VerticalScrollBarVisibility="Visible" Height="250">
            <RichTextBox.Resources>
                <Style TargetType="{x:Type Paragraph}">
                    <Setter Property="Margin" Value="0"/>
                </Style>
            </RichTextBox.Resources>
        </RichTextBox>

它的外观:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多