2010-03-04 45 views
1

我在SL4Beta中使用新的RichTextBox控件,并且想要为段落和运行(块和内联)创建样式。我注意到,我可以创建一个样式为<Block/>,像这样:块/内联的样式属性 - 有没有办法得到它?

<Style x:Key="lvl2Paragraph" TargetType="Block"> 
    <Setter Property="FontFamily" Value="Times New Roman"/> 
    <Setter Property="FontStyle" Value="Italic"/> 
    <Setter Property="FontSize" Value="22"/> 
</Style> 

但我不能组到<Paragraph/>成员“风格”成员无法识别或无法访问。像这样:

<RichTextBox TextWrapping="Wrap"> 
    <Paragraph Style="{StaticResource lvl2Paragraph}"> 
     Can't set a style for a paragraph. 
    </Paragraph> 
</RichTextBox> 

是否有为RichTextBox暴露“样式”?我愿意接受所有想法。

回答

1

Style是由继承自FrameworkElement的元素支持的属性和机制。然而,RichTextBox的内容是轻量级的,他们在阶级祖先中没有FrameworkElement或甚至UIElement

我能想到的减轻这种情况的唯一方法是创建一个附加属性来代替丢失的Style属性。但是,您应该在该附加属性中实现其他属性的所有设置。如果内联Xaml也设置相同的属性,它会对文档顺序敏感。

+0

感谢安东尼的洞察力,太糟糕了,它不可能比这更容易。似乎无法为''创建样式,但无法使用它。也许SL4的RC或RTW版本将提供它。 – 2010-03-05 02:51:03

+0

@Otaku:看起来有点奇怪,你可以创建一个不涉及“FrameworkElement”的东西,但我认为这种方法是正确的。如果这样做没有危险,那么它合理地保持开放。例如,如果这样的限制已经到位,我上面的建议将是一个非首发。 – AnthonyWJones 2010-03-05 07:53:36

相关问题