Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将TextBlock的前景设置为LinearGradientBrush会导致不需要的行为_C#_.net_Wpf - Fatal编程技术网

C# 将TextBlock的前景设置为LinearGradientBrush会导致不需要的行为

C# 将TextBlock的前景设置为LinearGradientBrush会导致不需要的行为,c#,.net,wpf,C#,.net,Wpf,我在我的数据模板中使用的TextBlock中出现了不需要的行为。我用于前台属性的LinearGradientBrush似乎没有为包含“下降者”的单词(如示例图片中单词vamper中的小写“p”)在字体上绘制一致的渐变 我尝试将线宽设置为与FontSize相同;没有变化。 我尝试设置文本块的高度;颜色不变,但在文本块的底部增加了高度 以前有没有其他人处理过这个问题并找到了解决方案?我试着在谷歌和StackOverflow上搜索答案,但到目前为止我什么也没找到 编辑:问题在于,渐变并没有应用到每个文

我在我的
数据模板中使用的
TextBlock
中出现了不需要的行为。我用于
前台
属性的
LinearGradientBrush
似乎没有为包含“下降者”的单词(如示例图片中单词vamper中的小写“p”)在字体上绘制一致的渐变

我尝试将
线宽设置为与
FontSize
相同;没有变化。
我尝试设置
文本块的
高度
;颜色不变,但在
文本块的底部增加了高度

以前有没有其他人处理过这个问题并找到了解决方案?我试着在谷歌和StackOverflow上搜索答案,但到目前为止我什么也没找到

编辑:问题在于,渐变并没有应用到每个文本框,因为渐变会增加字体的高度。看看单词
吸血鬼
勇敢
中小写字母“a”之间的区别,你就会明白我的意思了

TextBlock
XAML
尝试如下设置
MappingMode
属性:

<LinearGradientBrush MappingMode="Absolute" StartPoint="0,0" EndPoint="0,1" >


我不清楚问题出在哪里。图像看起来与XAML中定义的完全相同。你的画笔在.2处以白色开始,在.8处以DarkOrange结束(这也将使剩下的.2 DarkOrange)@HighCore查看单词Vampire中小写的“a”,与单词Brave中小写的“a”进行比较。渐变的应用方式不同,因为包含“吸血鬼”的文本块有一个包含“下降者”、“p”的单词。我认为这个问题。我希望字体看起来像“勇敢”这个词,不管它是否包含任何派生词。有趣的问题。这似乎是一个按设计工作的案例,设计不太适应这种常见场景。添加带有下降符('p')的字符会增加
文本块中
字形的高度,从而改变渐变应用于它的方式。一种可能的(难看的)解决方法是在
文本块
中为下行字符使用单独的
Run
s。另一种可能是使用
FormattedText
@KentBoogaart-Rafal来解决这个问题。如果将LinearGradientBrush的MappingMode设置为Absolute,则可以设置起点和终点,以基本上定义渐变的高度。我使用了
EndPoint=“0,26”
MappingMode=“Absolute”
,我能够获得所需的外观!使用
EndPoint=“0,1”
,整个文本是橙色(最后一个gradientstop颜色),因此我意识到需要将端点设置为文本块的高度!非常感谢。
<LinearGradientBrush MappingMode="Absolute" StartPoint="0,0" EndPoint="0,1" >