首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用richTextBox的用户控件,可绑定的richTextBox

使用richTextBox的用户控件,可绑定的richTextBox
EN

Stack Overflow用户
提问于 2011-01-08 18:59:52
回答 1查看 2.3K关注 0票数 0

我尝试使用richTextbox进行用户控制,因为我需要可绑定的richTextBox。

我在这里找到了一些解决方案:Richtextbox wpf binding

我想用大角星的溶液。使用richTextBox控件创建用户控件,并使用依赖项属性。

在XAML中,我只有richTextBox控件:

代码语言:javascript
复制
<UserControl x:Class="WpfApplication2.BindableRichTextBoxControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <RichTextBox Name="RichTextBox" Grid.Row="0"/>    
    </Grid>
</UserControl>

在CodeBehind中:

代码语言:javascript
复制
public partial class BindableRichTextBoxControl : UserControl
{
    public static readonly DependencyProperty DocumentProperty =
    DependencyProperty.Register("Document", typeof(FlowDocument), typeof(BindableRichTextBoxControl), 
    new PropertyMetadata(OnDocumentChanged));

    public FlowDocument Document
    {
        get { return (FlowDocument)GetValue(DocumentProperty); }
        set { SetValue(DocumentProperty, value); }
    }

    private static void OnDocumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        var control = (BindableRichTextBoxControl)d;
        if (e.NewValue == null)
            control.RichTextBox.Document=new FlowDocument();

        //?
        control.RichTextBox.Document = document;
    }


    public BindableRichTextBoxControl()
    {
        InitializeComponent();
    }
}

我对OnDocumentChanged方法中的最后一行有点困惑。

代码语言:javascript
复制
        control.RichTextBox.Document = document;

我无法确定什么是varibale 文档

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-09 01:57:30

我想他的意思是:

代码语言:javascript
复制
private static void OnDocumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    RichTextBoxControl control = (RichTextBoxControl) d;
    if (e.NewValue == null)
        control.RTB.Document = new FlowDocument(); //Document is not amused by null :)
    else
        control.RTB.Document = e.NewValue;
}

但我建议你对他最初的回答留下评论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4635583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档