【发布时间】:2015-06-19 11:59:09
【问题描述】:
我想在我的自定义RichTextBox 中添加一个TextDecorations.Strikethrough 装饰按钮我正在使用下面的代码来添加和删除TextDecoration 问题是当我选择一个范围时我得到一个InvalidCastException: Unable to cast object of type 'MS.Internal.NamedObject' to type 'System.Windows.TextDecorationCollection'.大于被删除线并单击“删除线”按钮的那个。
我的代码
private void StrikeOutButton_Click(object sender, RoutedEventArgs e)
{
TextRange range = new TextRange(this.MyRichTextBox.Selection.Start,
this.MyRichTextBox.Selection.End);
TextDecorationCollection tdc =
(TextDecorationCollection)this.MyRichTextBox.
Selection.GetPropertyValue(Inline.TextDecorationsProperty);
/*
if (tdc == null || !tdc.Equals(TextDecorations.Strikethrough))
{
tdc = TextDecorations.Strikethrough;
}
else
{
tdc = new TextDecorationCollection();
}
* */
if (tdc == null || !tdc.Contains(TextDecorations.Strikethrough[0]))
{
tdc = TextDecorations.Strikethrough;
}
else
{
tdc = new TextDecorationCollection();
}
range.ApplyPropertyValue(Inline.TextDecorationsProperty, tdc);
}
注释掉的代码也不起作用。
我打算发布 ExceptionDetails 但我认为它非常清楚。
谁能给我一个解决方法?
【问题讨论】:
标签: wpf richtextbox text-decorations