Wpf RichTextBox - 在Caret获取文本属性

时间:2013-12-10 05:00:04

标签: c# wpf richtextbox

当用户点击RichTextBox(Wpf)中单词内的say时,我需要从Caret前面的单词或字符中获取文本属性。现在他们都在为我提供价值,即FontFamily,FontSize&前景色但我似乎无法获得背景色。似乎后台的属性返回一个Brush值,用于稍后设置属性,在这个实例中我得到一个null!我已经尝试了很多方法来获取它,但似乎都失败了(TextRange也是如此)所以我正在寻求一些帮助! :) BTW它在VS2010 .Net 4

吉姆

    private void ScratchPad_OnPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        var start = ScratchPad.CaretPosition;
        var end = start.GetNextContextPosition(LogicalDirection.Backward);
        // ScratchPad is the RichTextBox !
        ScratchPad.Selection.Select(end, start);          

        var bg = ScratchPad.Selection.GetPropertyValue(TextElement.BackgroundProperty);
        var fg = ScratchPad.Selection.GetPropertyValue(TextElement.ForegroundProperty);
        var fs = ScratchPad.Selection.GetPropertyValue(TextElement.FontSizeProperty);
        var ff = ScratchPad.Selection.GetPropertyValue(TextElement.FontFamilyProperty);

        //RtbFontSizes.SelectedValue = Convert.ToDouble(fs);
        //RtbFontList.SelectedValue = ff.ToString();

        ScratchPad.Selection.Select(start, start);
    }

0 个答案:

没有答案