WPF控件将溢出的文本淡出为透明,而不是剪切或包装?
如何创建WPF控件(类似于TextBlock),以便将溢出的文本淡出为透明,而不是简单地剪切或包装WPF控件将溢出的文本淡出为透明,而不是剪切或包装?,wpf,wpf-controls,Wpf,Wpf Controls,如何创建WPF控件(类似于TextBlock),以便将溢出的文本淡出为透明,而不是简单地剪切或包装 我需要保持控件的固定宽度,因此扩展控件的宽度以适应文本不是一个选项。我也不想让文本字体变小。不太清楚您想要实现什么,但您可以这样做: <TextBlock Text="Some long text here that should fade out"> <TextBlock.Foreground> <LinearGrad
我需要保持控件的固定宽度,因此扩展控件的宽度以适应文本不是一个选项。我也不想让文本字体变小。不太清楚您想要实现什么,但您可以这样做:
<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>
但是控件仍然需要足够宽,以容纳所有文本,以便显示 谢谢大家,但我找到了我需要的答案。我想,马特比我抢先一步,他做同样的事情有点不一样。两种方法都有效!为了澄清,只需在TextBlock顶部放置一个带有渐变笔刷的矩形。在我的例子中,矩形位于文本的右边缘。这两种解决方案的问题(解释得不够好是我的错)是我需要淡出部分始终位于父控件的右边缘。这样,textblock中较短的字符串不会使其右边缘褪色。我基本上是在说‘有太多的文字无法显示’。无论如何,谢谢你的帮助。
<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>
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"