【发布时间】:2019-01-08 16:13:45
【问题描述】:
我有以下代码:
<TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Style="{StaticResource PhoneTextTitle1Style}" FontSize="65">
<Underline Foreground="DeepSkyBlue">
<Run Foreground="Turquoise" Text="{Binding SomeProp}"></Run>
</Underline>
</TextBlock>
我需要用绿松石色绘制我的文本并使用其他颜色“DeepSkyBlue”在其下划线。我认为Run 元素应该为自己覆盖父控件Foreground 属性,但看起来这是错误的假设(实际上它会覆盖但我需要下划线以保持其他颜色)。 WP8可以吗?如果是,我的样本有什么问题?
编辑:在Pantelis 和aloisdg 的帮助下,工作代码如下所示:
<Grid Margin="0,0,0,10" HorizontalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border BorderBrush="DeepSkyBlue" BorderThickness="0,0,0,1">
<TextBlock TextWrapping="Wrap" Style="{StaticResource PhoneTextTitle1Style}" FontSize="65">
<Run Foreground="Turquoise" Text="{Binding SomeProp}"></Run>
</TextBlock>
</Border>
</Grid>
【问题讨论】:
-
如果没有 100% 的把握,我认为这是不可能的。您可以使用堆栈面板来表示文本块,并使用矩形或边框或任何其他适合这种情况的元素来绘制下划线。
-
您的回答是正确的。使用 Border + Grid 的方法解决了这个问题。
标签: c# xaml windows-phone-8 windows-phone