如何将字符串转换为DataGrid的DataTemplate中的RichTextBox中的RTF格式?

约翰

我有一个来自数据库的RTF格式的字符串。字符串如下:

{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Segoe UI, Lucida Sans Unicode, Verdana;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch This is a sentence}\li0\ri0\sa0\sb0\fi0\ql\par}
}
}

我将以下数据作为DataGrid XAML代码:

<DataGrid Name="dg">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Col1" Binding="{Binding Col1}"/>
        <DataGridTextColumn Header="Col1" Binding="{Binding Col1}"/>
    </DataGrid.Columns>
    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <RichTextBox>
                <FlowDocument>
                    <Paragraph>
                        <Run Text="{Binding Text}" />
                    </Paragraph>
                </FlowDocument>
            </RichTextBox>
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
</DataGrid>

我遇到的问题是正在显示来自数据库的值,但它是RTF格式。

我不确定如何进行转换,以便RichTextBox将显示文本的适当格式。

我有以下将数据加载到RichTextBox中的方法,但是问题是我需要首先知道RichTextBox的名称。

public static string convertString_RTF(string text, RichTextBox rtb)
{
    string rtfText = text;
    byte[] byteArray = Encoding.ASCII.GetBytes(rtfText);
    using (System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArray))
    {
        System.Windows.Documents.TextRange tr = new System.Windows.Documents.TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
        tr.Load(ms, System.Windows.DataFormats.Rtf);
    }
    return null;
}

通过绑定在RichTextBox中显示RTF字符串的解决方案是什么?

预先感谢您的帮助。

安朱姆·汗(AnjumSKhan)
  1. 创建自己的RichTextBox,并引入一个新的DependencyProperty名称TextProperty

    public class MyRichTextBox : RichTextBox
    {
        public string Text
        {
          get { return (string)GetValue(TextProperty); }
          set { SetValue(TextProperty, value); }
        }
    
        // Using a DependencyProperty as the backing store for Text.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty TextProperty =
               DependencyProperty.Register("Text", typeof(string), typeof(MyRichTextBox), new PropertyMetadata(String.Empty, new PropertyChangedCallback(TextChanged_Handler)));
    
        private static void TextChanged_Handler(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            RichTextBox rtb = d as RichTextBox;
    
            byte[] array = Encoding.ASCII.GetBytes(e.NewValue.ToString());
            using (MemoryStream stream = new MemoryStream(array))
            {
                TextRange t = new TextRange(rtb.Document.ContentStart,
                                rtb.Document.ContentEnd);
                t.Load(stream, System.Windows.DataFormats.Rtf);
            }                
         }       
    }
    

用法 :

<local:MyRichTextBox Margin="20" Text="{Binding RtfCol}" Width="300" Height="300" />
  1. 您也可以选择的路线AttachedProperty

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将这个datetime变量转换为python中这种格式的等效字符串?

来自分类Dev

如何将PT格式的持续时间转换为PHP中的常规字符串

来自分类Dev

如何将jquery中的日期字符串转换为所需格式

来自分类Dev

如何将字符串格式日期 yyyymmddThhmmss.sss 转换为 Bash 中的日期?

来自分类Dev

如何将字符串数组转换为D中的字符串?

来自分类Dev

如何将字符串转换为数组中的字符串数组

来自分类Dev

如何将1970年之前的日期格式的字符串转换为Windows中的时间戳

来自分类Dev

在Ruby中,如何将该字符串格式转换为哈希

来自分类Dev

如何将字符串转换为 C++ 中字符串中字母大小的字符数组?

来自分类Dev

如何将字符列表转换为purescript中的字符串

来自分类Dev

如何将字符串中的字符转换为int?

来自分类Dev

如何将Pandas Dataframe中的字符串转换为列表或字符数组?

来自分类Dev

如何将数字转换为ASCII值或字符并存储在字符串数组中

来自分类Dev

Java:如何将字符串中的每个字符转换为“*”(空格除外)

来自分类Dev

如何将 JS 中的字符/字符串转换为 uint8?

来自分类Dev

如何将 unicode 转换为 Python 字符串中的重音字符

来自分类Dev

如何将[设置]中AppID的内容转换为[代码]中的字符串?

来自分类Dev

如何将[setup]中AppID的内容转换为[code]中的字符串?

来自分类Dev

如何使用Oracle日期格式将DateTime转换为C#中的字符串

来自分类Dev

如何在ClickHouse中通过扩展解析将日期字符串转换为DateTime格式?

来自分类Dev

如何在将字符串转换为long时避免android中的数字格式异常?

来自分类Dev

如何获取数组中的值,或者如何将数组转换为字符串?

来自分类Dev

如何将“01MAR1978:00:00:00”字符串格式的日期转换为 SparkR 中的日期格式?

来自分类Dev

如何将多个日期格式的字符串转换为时区格式的时间戳

来自分类Dev

如何将NSArray(以字符串格式)转换为真实的Array格式?

来自分类Dev

如何将 AJAX 检索到的 JSON 格式的字符串转换为类似格式的表格

来自分类Dev

如何将格式正确的 Javascript 对象(字符串格式)转换为对象?

来自分类Dev

在RTF字符串中设置格式?

来自分类Dev

如何将熊猫中的timedelta列转换为字符串

Related 相关文章

  1. 1

    如何将这个datetime变量转换为python中这种格式的等效字符串?

  2. 2

    如何将PT格式的持续时间转换为PHP中的常规字符串

  3. 3

    如何将jquery中的日期字符串转换为所需格式

  4. 4

    如何将字符串格式日期 yyyymmddThhmmss.sss 转换为 Bash 中的日期?

  5. 5

    如何将字符串数组转换为D中的字符串?

  6. 6

    如何将字符串转换为数组中的字符串数组

  7. 7

    如何将1970年之前的日期格式的字符串转换为Windows中的时间戳

  8. 8

    在Ruby中,如何将该字符串格式转换为哈希

  9. 9

    如何将字符串转换为 C++ 中字符串中字母大小的字符数组?

  10. 10

    如何将字符列表转换为purescript中的字符串

  11. 11

    如何将字符串中的字符转换为int?

  12. 12

    如何将Pandas Dataframe中的字符串转换为列表或字符数组?

  13. 13

    如何将数字转换为ASCII值或字符并存储在字符串数组中

  14. 14

    Java:如何将字符串中的每个字符转换为“*”(空格除外)

  15. 15

    如何将 JS 中的字符/字符串转换为 uint8?

  16. 16

    如何将 unicode 转换为 Python 字符串中的重音字符

  17. 17

    如何将[设置]中AppID的内容转换为[代码]中的字符串?

  18. 18

    如何将[setup]中AppID的内容转换为[code]中的字符串?

  19. 19

    如何使用Oracle日期格式将DateTime转换为C#中的字符串

  20. 20

    如何在ClickHouse中通过扩展解析将日期字符串转换为DateTime格式?

  21. 21

    如何在将字符串转换为long时避免android中的数字格式异常?

  22. 22

    如何获取数组中的值,或者如何将数组转换为字符串?

  23. 23

    如何将“01MAR1978:00:00:00”字符串格式的日期转换为 SparkR 中的日期格式?

  24. 24

    如何将多个日期格式的字符串转换为时区格式的时间戳

  25. 25

    如何将NSArray(以字符串格式)转换为真实的Array格式?

  26. 26

    如何将 AJAX 检索到的 JSON 格式的字符串转换为类似格式的表格

  27. 27

    如何将格式正确的 Javascript 对象(字符串格式)转换为对象?

  28. 28

    在RTF字符串中设置格式?

  29. 29

    如何将熊猫中的timedelta列转换为字符串

热门标签

归档