1

テキストを にコピーするときにテキストの形式を維持したいのですがrichtextbox、どうすればよいですか? (Microsoft Word 文書でコードをコピーすると、コードの色は Visual Studio と同じになります (ここにhttp://img4.fotos-hochladen.net/uploads/unbenannta2k46fcjn5.pngを表示))

そして、テキストをSQLデータベースに保存し、同じ形式(色など)でリロードしたいと考えています。データベースにデータを保存して読み取る方法は知っていますが、テキストを形式 (色) で保存するにはどうすればよいですか?

4

2 に答える 2

2

非表示になっているFlowDocumentをRichTextBox.Document文字列として保存することもできます

public static string ToStringExt(this IDocumentPaginatorSource flowDocument)
{
    return XamlWriter.Save(flowDocument);
}

FlowDocumentとして変換し直すには、この拡張機能を使用できます

public static bool IsFlowDocument(this string xamlString)
{
    if (xamlString.IsNullOrEmpty()) 
        throw new ArgumentNullException();

    if (xamlString.StartsWith("<") && xamlString.EndsWith(">"))
    {
        XmlDocument xml = new XmlDocument();
        try
        {
            xml.LoadXml(string.Format("<Root>{0}</Root>", xamlString));
            return true;
        }
        catch (XmlException)
        {
            return false;
        }
    }
    return false;
}

public static FlowDocument toFlowDocument(this string xamlString)
{
    if (IsFlowDocument(xamlString))
    {
        var stringReader = new StringReader(xamlString);
        var xmlReader = System.Xml.XmlReader.Create(stringReader);

        return XamlReader.Load(xmlReader) as FlowDocument;
    }
    else
    {
        Paragraph myParagraph = new Paragraph();
        myParagraph.Inlines.Add(new Run(xamlString));
        FlowDocument myFlowDocument = new FlowDocument();
        myFlowDocument.Blocks.Add(myParagraph);

        return myFlowDocument;
    }
}
于 2013-03-21T12:53:33.990 に答える
-1

RichTextBox のRtfプロパティを使用する

richtextbox1.Rtf=> データベースに保存

データベースから取得し、 の値を復元しますrichtextbox1.Rtf

于 2013-03-21T12:39:52.660 に答える