4

TextBlockで使用しているから、望ましくない動作が発生しますDataTemplateLinearGradientBrushプロパティに使用しているのはForeground、例の画像のVampireという単語の小文字の「p」のような「ディセンダー」を含む単語のフォント全体で一貫してグラデーションを描画していないようです。

を;LineHeightと同じに設定してみました。FontSize変化なし。
の設定をしてみHeightましたTextBlock; 色は変更されませんが、の下部に高さが追加されTextBlockます。

他の誰かがこれに対処し、以前に解決策を見つけましたか?GoogleとStackOverflowで回答を検索してみましたが、今のところ何も思いつきません。

編集:問題は、子孫がフォントの高さを増やすため、グラデーションが各テキストボックスに同じように適用されないことです。との小文字の「a」の違いを見てください。そうすればVampireBrave私が何を意味するのかがわかります。

詳細な超クールなサンプル画像

TextBlockXAML

<TextBlock Text="{Binding Title}" FontWeight="Bold" FontStyle="Italic" 
           FontSize="20" Padding="3" LineHeight="20">
  <TextBlock.Foreground>
    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" >
      <GradientStopCollection>
        <GradientStop Color="White" Offset="0.2"/>
        <GradientStop Color="AliceBlue" Offset="0.4"/>
        <GradientStop Color="#6AB0EE" Offset="0.6"/>
        <GradientStop Color="DarkOrange" Offset="0.8"/>
      </GradientStopCollection>
    </LinearGradientBrush>
  </TextBlock.Foreground>
</TextBlock>
4

1 に答える 1

3

MappingMode次のようにプロパティを設定してみてください。

<LinearGradientBrush MappingMode="Absolute" StartPoint="0,0" EndPoint="0,1" >
于 2013-01-18T19:26:46.110 に答える