2014-02-09 94 views
0

我有以下代碼:如何在WP8中爲不同顏色的文字加下劃線?

<TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Style="{StaticResource PhoneTextTitle1Style}" FontSize="65"> 
     <Underline Foreground="DeepSkyBlue"> 
      <Run Foreground="Turquoise" Text="{Binding SomeProp}"></Run> 
     </Underline> 
</TextBlock> 

我需要的是綠松石顏色我的文字油漆和使用其他顏色強調它 - 「深天藍」。我認爲Run元素應該覆蓋父控制Foreground屬性本身,但它看起來像這是錯誤的假設(實際上它覆蓋,但我需要強調保持其他顏色)。 WP8有可能嗎?如果是,我的樣本有什麼問題?

編輯:Pantelisaloisdg工作代碼的幫助是這樣的:

 <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> 
+2

沒有被100%地肯定,我不認爲這是可能的。 您可以使用堆棧面板來表示文本塊,並使用矩形或邊框或任何其他適合案例繪製下劃線的元素。 – Pantelis

+0

你的回答是正確的。使用Border + Grid的方法解決了這個問題。 –

回答

3

我不知道這是做的最好的方法,但你可以使用一個border

<Border BorderBrush="DeepSkyBlue" BorderThickness="0,0,0,1"> 
    <!-- your text --> 
</Border> 
-1

爲了這些目的,我使用了TextDecorations屬性。 例如,在XAML:

<Grid x:Name="LayoutRoot" Background="Transparent"> 
<TextBlock HorizontalAlignment="Left" Margin="47,109,0,0" 
      Name="MyTBl" 
      TextDecorations = "Underline" 
      Text="Using TextDecorations property to underline the text." 
      TextWrapping="Wrap" 
      VerticalAlignment="Top"/> 
</Grid> 

在C#:

MyTBl.TextDecorations = TextDecorations.Underline; 

看到這裏的細節:https://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.textdecorations(v=vs.105).aspx

相關問題