【问题标题】:Apply a style to Run objects of a generated TextBlock将样式应用于生成的 TextBlock 的 Run 对象
【发布时间】:2011-05-30 19:11:45
【问题描述】:

我有一个生成的 TextBlock,里面有两个 Run 对象。我想为第一个 Run 对象分配一种颜色,为另一个对象分配另一种颜色,我想在 XAML 中指定它。

这是代码隐藏:

TextBlock tb = new TextBlock();

tb.Style = Application.Current.Resources["MyTextStyle"] as Style;   
tb.Inlines.Add(new Run { Text = "Line 1" });
tb.Inlines.Add(new LineBreak());
tb.Inlines.Add(new Run { Text = "Line 2" });

container.Child = tb;

这是 XAML:

<Style x:Key="MyTextStyle" TargetType="TextBlock">
    <Setter Property="TextWrapping" Value="NoWrap" />
    <Setter Property="Foreground" Value="{StaticResource PhoneAccentColor}" />
</Style>

我应该如何修改 XAML 代码?

谢谢。

【问题讨论】:

    标签: xaml windows-phone-7


    【解决方案1】:

    也许是这样?

    <TextBlock Style="{StaticResource Comment}">
        <Run FontWeight="Bold" Foreground="Red">line1</Run><LineBreak/><Run>line2</Run>
    </TextBlock>
    

    【讨论】:

    • 这似乎是 XAML 声明的 TextBlock,而不是代码隐藏生成的 TextBlock。
    • 好的,我不确定你是不是这个意思。 a) 您无法设置 Run 对象的样式,因为它没有 Style 属性。 b) 您不能绑定 Run 对象,因为它不是 FrameworkElement。 c)因此我看到的唯一选择是从静态资源设置前景;它们可以在 Xaml 中定义。
    • 例如您可以定义应用程序资源 然后将其用作 runBlock.Foreground = (Brush)Application.Current.Resources["我的刷子"]。
    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 2019-08-30
    相关资源
    最近更新 更多