2016-09-02 8 views
1

ImageBrushTextblockForegroundとして使用しています。正常に動作しますが、TextblockUnderlineの場合、行は表示されません。UWP下線TextblockにImageBrushをフォアグラウンドで表示しても下線が表示されない

再生する。

Uri uri = new Uri("ms-appx:///Assets/0.png"); 
BitmapImage bmp = new BitmapImage(uri); 
ImageBrush imageBrush = new ImageBrush(); 
imageBrush.ImageSource = bmp; 
this.textBlock.Foreground = imageBrush; 

の背後にあるコードで

<TextBlock x:Name="textBlock" FontSize="80" FontWeight="Bold"> 
    <Underline>This is my text</Underline> 
</TextBlock> 

XAML

ではここで、下線が消えている下線付きのSolidColorBrushが

enter image description here

その後ImageBrushが適用された場合に適用と同じように、それがどのように見えるのです

enter image description here

だから私の質問は、私はUWPでUnderlineTextblockImageBrushForegroundを適用しない方法ですか?

答えて

1

私の質問は、ImageBrush ForegroundをUWPのUnderline Textblockに適用する方法ですか?デフォルトでは

ImageBrushTextBlock年代Foregroundプロパティに適用されたとき、下線が削除されます。

この問題を回避するには、下線をシミュレートするBorderを使用している:あなたは再利用性を維持するために、ユーザーコントロール/ CustomControlを作成することができます

<Border BorderThickness="0, 0, 0, 2" Height="{Binding ActualHeight, ElementName=textBlock}" Width="{Binding ActualWidth, ElementName=textBlock}"> 
      <Border.BorderBrush> 
       <ImageBrush ImageSource="Assets/0.jpg" /> 
      </Border.BorderBrush> 
      <TextBlock x:Name="textBlock" FontSize="50" FontWeight="Bold"> 
       <TextBlock.Foreground> 
        <ImageBrush ImageSource="Assets/0.jpg" /> 
       </TextBlock.Foreground> 
       <Underline><Run Text="This is my text"/></Underline> 
      </TextBlock> 
     </Border> 

enter image description here

+0

これは真の下線ではなく、グリフの高さとオフセットを考慮しないことに注意してください。これは、プレビューでは下線と交差するのではなく、下線が 'y'の最下点の下にプッシュされて表示されます。 –

関連する問題