C# XAML对容器内容应用渐变淡入效果
在XAML中是否有办法使容器中的所有内容逐渐褪色?例如,假设我们有一个C# XAML对容器内容应用渐变淡入效果,c#,xaml,windows-10-universal,uwp-xaml,C#,Xaml,Windows 10 Universal,Uwp Xaml,在XAML中是否有办法使容器中的所有内容逐渐褪色?例如,假设我们有一个,它包含几个元素……我希望它们的所有前景值都采用应用的渐变 <StackPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> <TextBlock Text="Tue" /> </StackPanel> <StackPanel Orientat
,它包含几个
元素……我希望它们的所有前景值都采用应用的渐变
<StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Tue" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Wed" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Thu" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Fri" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Sat" />
</StackPanel>
</StackPanel>
我希望文本块的文本值从顶部的白色渐变为透明。我不想对每个人都应用
,也不想应用.Background
渐变。我认为这是不可能的,但是现在的一切都可以伪造,只要没有图片作为背景,而是可以装订的颜色。您可以创建一个与当前堆栈面板重叠的矩形,您可以绑定背景色并将其用作伪透明控件。这是一个你如何做到这一点的例子
<StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Tue" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Wed" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Thu" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Fri" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Sat" />
</StackPanel>
</StackPanel>
<Page
x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
</StackPanel>
<Rectangle>
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0.5,0.5">
<GradientStop Offset="0" Color="Transparent" />
<GradientStop Offset="0.5" Color="White" />
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
</Page>
另一种选择是使用转换器,但您必须对每个控件应用相同的转换器。希望这有帮助
编辑
这不是你想要的还是我不明白这个问题
我认为这是不可能的,但是现在的一切都是可以伪造的,只要没有图片作为背景,而是可以装订的颜色。您可以创建一个与当前堆栈面板重叠的矩形,您可以绑定背景色并将其用作伪透明控件。这是一个你如何做到这一点的例子
<Page
x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque dolor." />
</StackPanel>
</StackPanel>
<Rectangle>
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0.5,0.5">
<GradientStop Offset="0" Color="Transparent" />
<GradientStop Offset="0.5" Color="White" />
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
</Page>
另一种选择是使用转换器,但您必须对每个控件应用相同的转换器。希望这有帮助
编辑
这不是你想要的还是我不明白这个问题
这似乎不起作用,它只是在我的文本上画了一个渐变矩形。黑色主题,黑色背景,白色前景。这种方法有效吗?一开始我没怎么想,但我想它不会有效,因为你会有一条可见的过渡线。这似乎不起作用,它只是在我的文本上画一个渐变矩形。黑色主题,黑色背景,白色前景。这种方法有效吗?一开始我没怎么考虑,但我想不会有效,因为你会有一条可见的过渡线。