첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;

#region RTF 구하기 - GetRTF(richTextBox)

/// <summary>
/// RTF 구하기
/// </summary>
/// <param name="richTextBox">RichTextBox</param>
/// <returns>RTF</returns>
public string GetRTF(RichTextBox richTextBox)
{
    return GetString(richTextBox, DataFormats.Rtf);
}

#endregion

#region XAML 구하기 - GetXAML(richTextBox)

/// <summary>
/// XAML 구하기
/// </summary>
/// <param name="richTextBox">RichTextBox</param>
/// <returns>XAML</returns>
public string GetXAML(RichTextBox richTextBox)
{
    return GetString(richTextBox, DataFormats.Xaml);
}

#endregion

#region 텍스트 구하기 - GetText(richTextBox)

/// <summary>
/// 텍스트 구하기
/// </summary>
/// <param name="richTextBox">RichTextBox</param>
/// <returns>텍스트</returns>
public string GetText(RichTextBox richTextBox)
{
    return GetString(richTextBox, DataFormats.Text);
}

#endregion

#region 문자열 구하기 - GetString(richTextBox, dataFormat)

/// <summary>
/// 문자열 구하기
/// </summary>
/// <param name="richTextBox">RichTextBox</param>
/// <param name="dataFormat">데이터 포맷</param>
/// <returns>문자열</returns>
private string GetString(RichTextBox richTextBox, string dataFormat)
{
    FlowDocument flowDocument = richTextBox.Document;

    string result = string.Empty;

    using(MemoryStream memoryStream = new MemoryStream())
    {
        TextRange textRange = new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd);

        textRange.Save(memoryStream, dataFormat);

        memoryStream.Seek(0, SeekOrigin.Begin);

        using(StreamReader streamReader = new StreamReader(memoryStream))
        {
            result = streamReader.ReadToEnd();
        }
    }

    return result;
}

#endregion
728x90
반응형
그리드형
Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요