如何创建一个WPF控件(类似于TextBlock),以便任何溢出的文本都淡出透明而不是简单的剪切或包装?
我需要保持控件的固定宽度,因此扩展控件的宽度以适应文本不是一种选择。我也不想让文字字体变小。
答案 0 :(得分:1)
不太确定你想要达到的目标,但你可以这样做:
<TextBlock Text="Some long text here that should fade out">
<TextBlock.Foreground>
<LinearGradientBrush>
<GradientStop Offset="0" Color="Black"/>
<GradientStop Offset="0.7" Color="Black"/>
<GradientStop Offset="1" Color="Transparent"/>
</LinearGradientBrush>
</TextBlock.Foreground>
</TextBlock>
但是你的控件仍然需要足够宽以容纳所有要显示的文本。
答案 1 :(得分:1)
<TextBlock Text="fgdfgfdgfddgfdgdfgfdgfdgd" Width="129" TextWrapping="NoWrap">
<TextBlock.Foreground>
<LinearGradientBrush EndPoint="0.661,0.399" StartPoint="0.008,0.496">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="#7F000000" Offset="0.803"/>
<GradientStop Color="#4C0A0909" Offset="0.95"/>
<GradientStop Color="#BF000000" Offset="0.729"/>
<GradientStop Color="#F8000000" Offset="0.699"/>
</LinearGradientBrush>
</TextBlock.Foreground>
</TextBlock>
渐变的技巧是,即使所有颜色都基于黑色,通过使用伪代码中的一部分RGBA播放每个渐变的不透明度来实现淡入淡出:
GradientStop Color="Black" A=100%
GradientStop Color="Black" A=97% Offset="0.803"
GradientStop Color="Black" A=75% Offset="0.95"
GradientStop Color="Black" A=80% Offset="0.729"
GradientStop Color="Black" A=30% Offset="0.699"
答案 2 :(得分:0)
谢谢大家,但我在MSDN找到了我需要的答案。