如何使用Silverlight 4中的RichTextBox进行选择对齐?

时间:2009-12-30 11:42:09

标签: silverlight properties silverlight-4.0 richtextbox selection

我似乎无法弄清楚如何在新的RichTextBox中进行选择对齐,我有一个想法,我需要将选择转换为支持对齐的Paragraph类型,但似乎无法解决这个问题。 Silverlight示例都没有这个,但我确信它是可能的。
我有这个代码,这不起作用 - 因为我认为我需要选择一个段落,因为它总是返回和异常“值不在预期的范围内”。

Editor.Selection.SetPropertyValue(Paragraph.TextAlignmentProperty, TextAlignment.Left)

我确保首先检查有效选择,代码如下所示“Bold”:

If Editor.Selection.Text.Length > 0 Then ' Text Selected
    If TypeOf Editor.Selection.GetPropertyValue(Run.FontWeightProperty) Is FontWeight _
        AndAlso DirectCast(Editor.Selection.GetPropertyValue(Run.FontWeightProperty), FontWeight) = FontWeights.Normal Then
        Editor.Selection.SetPropertyValue(Run.FontWeightProperty, FontWeights.Bold)
    Else
        Editor.Selection.SetPropertyValue(Run.FontWeightProperty, FontWeights.Normal)
    End If
End If
Editor.Focus()

XAML中的示例:

<Paragraph TextAlignment="Right">Example</Paragraph>

以上工作在RichTextBox的内容中,但我需要根据选择以编程方式执行此操作 - 如在写字板中。

2 个答案:

答案 0 :(得分:2)

使用silverlight 4发布的版本,这就是我的做法。 Editor.Selection.ApplyPropertyValue(Paragraph.TextAlignmentProperty, TextAlignment.Left)

这假设您当前正在选择的文本是正确的。

答案 1 :(得分:1)

看起来RichTextArea在Silverlight 4测试版中不支持这一点,尽管可以使用Paragraph元素在代码和XAML中填充具有特定TextAlignment的RichTextArea,但是不能在Selection上执行此操作“块”或“段落”元素仅选择“运行”。