【问题标题】:Style property on Blocks/Inlines - Is there a way to get this?块/内联的样式属性 - 有没有办法得到这个?
【发布时间】:2010-03-17 06:30:46
【问题描述】:

我正在使用 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>

但我不能将其设置为&lt;Paragraph/&gt;,因为“样式”成员无法识别或无法访问。像这样:

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

有没有办法为 RichTextBox 公开“样式”?我对所有想法持开放态度。

【问题讨论】:

    标签: silverlight silverlight-4.0 richtextbox


    【解决方案1】:

    Style 是继承自FrameworkElement 的元素所支持的属性和机制。但是RichTextBox 的内容是轻量级的,它们的类祖先中没有FrameworkElement 甚至UIElement

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

    【讨论】:

    • 感谢 Anthony 的洞察力,可惜没有比这更容易的了。能够为&lt;Block/&gt; 创建样式但无法使用它似乎没有任何意义。也许 SL4 的 RC 或 RTW 版本会提供它。
    • @Otaku:允许您创建一个不引用FrameworkElement 的文件似乎有点奇怪,但我认为这种方法是正确的。如果这样做不危险,保持门打开是合理的。例如,如果有这样的限制,我上面的建议将是无效的。
    猜你喜欢
    • 2014-05-08
    • 2011-06-02
    • 1970-01-01
    • 2022-11-06
    • 2012-12-26
    • 1970-01-01
    • 2019-07-05
    • 2013-11-09
    相关资源
    最近更新 更多