c# - richtextbox 到字符串

标签 c# wpf xaml richtextbox document

我有一个绑定(bind)到菜单项的富文本框,以允许粗体、斜体和下划线以及剪切复制和粘贴。但是,如何获取 richtextbox 内容并将其从 后面的代码转换为字符串,其中将包含粗体、斜体等?

        </DockPanel>
            <DockPanel Height="259" VerticalAlignment="Bottom">
            <Menu DockPanel.Dock="Top">
                <MenuItem Header="Edit">
                    <MenuItem Command="Cut" Header="_Cut" />
                    <MenuItem Command="Copy" Header="C_opy" />
                    <MenuItem Command="Paste" Header="_Paste" />
                </MenuItem>
            </Menu>
            <ToolBarTray DockPanel.Dock="Top">
                <ToolBar>
                    <Button Command="Cut" Content="Cut" />
                    <Button Command="Copy" Content="Copy" />
                    <Button Command="Paste" Content="Paste" />
                            <ToggleButton MinWidth="40"
                    Command="EditingCommands.ToggleBold"
                    CommandTarget="{Binding ElementName=XAMLRichBox}"
                    TextBlock.FontWeight="Bold">B</ToggleButton>
                            <ToggleButton MinWidth="40"
                    Command="EditingCommands.ToggleItalic"
                    CommandTarget="{Binding ElementName=XAMLRichBox}"
                    TextBlock.FontStyle="Italic">I</ToggleButton>
                            <ToggleButton MinWidth="40"
                    Command="EditingCommands.ToggleUnderline"
                    CommandTarget="{Binding ElementName=XAMLRichBox}">
                                <TextBlock TextDecorations="Underline">U</TextBlock>
                            </ToggleButton>
                        </ToolBar>
            </ToolBarTray>
                <RichTextBox HorizontalAlignment="Left" Margin="0,0,0,0" Name="richTextBox1"  Height="211" VerticalAlignment="Top" Width="398" />

在后面的代码中我试图这样做(不确定如何做)但是文本 block 只是作为普通文本出现,它不包含粗体等。

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        string myText = new TextRange(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd).Text;
        textBlock1.Text = myText;

最佳答案

您问题的简单答案是:您不能。字符串不包含格式信息。您需要以支持文本格式的格式(如 RTF)存储 RichTextBox 的内容。

关于c# - richtextbox 到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10252506/

相关文章:

c# - Azure函数: configure blob trigger only for new events

c# - 另一个窗体关闭后主窗体的更新

c# - 如何使用 sqlserver 中的 C# 在 xaml 中绑定(bind)数据

c# - 如何在 C# 注释中添加 xaml 代码?

c# - Win 10 UAP - 在 Canvas 上画一条线

c# - 项目 'ClassLibrary1.csproj' 目标 'netcoreapp2.1' 。它无法被目标为 '.NETFramework,Version=v4.7.2' 的项目引用

c# - 在 c#、mysql 中使用 linq 查找最新插入日期的数据

c# - 如何告诉nuget将包资源文件添加为链接,而不是将它们复制到项目目录中

c# - WPF:将 ListBox ContextMenu 的命令参数绑定(bind)到 ListBox 的选定项

wpf - 从 XAML 调用在代码隐藏中定义的自定义依赖项属性