我想一次将画笔(在本例中为 LinearGradientBrush)应用到两个或多个对象(TextBlocks)。我想要的效果是这样的:
编辑 我不能简单地将相同的画笔应用于两个对象,因为这会使它们都从红色开始变为蓝色(而不是第二个从紫色阴影开始)。
我确定我忽略了一些快速简单的东西......
谢谢,wTS
我想一次将画笔(在本例中为 LinearGradientBrush)应用到两个或多个对象(TextBlocks)。我想要的效果是这样的:
编辑 我不能简单地将相同的画笔应用于两个对象,因为这会使它们都从红色开始变为蓝色(而不是第二个从紫色阴影开始)。
我确定我忽略了一些快速简单的东西......
谢谢,wTS
我是这样做的:
<Border Height="100" Width="600" >
<Border.OpacityMask>
<VisualBrush>
<VisualBrush.Visual>
<StackPanel>
<TextBlock FontSize="85.333" FontFamily="Calibri" TextAlignment="Right">
The big first line
</TextBlock>
<TextBlock TextWrapping="Wrap" Margin="0,0,8,0" FontSize="32" FontFamily="Calibri" Text="The small second line" TextAlignment="Right" />
</StackPanel>
</VisualBrush.Visual>
</VisualBrush>
</Border.OpacityMask>
<Border.Background>
<LinearGradientBrush EndPoint="0.974,0.49" StartPoint="0,0.457">
<GradientStop Color="#FFFD0202"/>
<GradientStop Color="#FF0234FD" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
</Border>
因此,一个边框的背景填充了从蓝色到红色的渐变。渐变的唯一可见部分是不透明蒙版中的文本。
也许比边界更简单的控制会更好。
剩下的问题是必须明确调整容器控件的大小,因为它没有内容。
将画笔声明到窗口(或应用程序)资源中,并将两个文本块的 Foreground 属性与画笔绑定。