Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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# XAML对容器内容应用渐变淡入效果_C#_Xaml_Windows 10 Universal_Uwp Xaml - Fatal编程技术网

C# 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

XAML中是否有办法使容器中的所有内容逐渐褪色?例如,假设我们有一个
,它包含几个
元素……我希望它们的所有
前景值都采用应用的渐变

<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>

另一种选择是使用转换器,但您必须对每个控件应用相同的转换器。希望这有帮助

编辑

这不是你想要的还是我不明白这个问题


这似乎不起作用,它只是在我的文本上画了一个渐变矩形。黑色主题,黑色背景,白色前景。这种方法有效吗?一开始我没怎么想,但我想它不会有效,因为你会有一条可见的过渡线。这似乎不起作用,它只是在我的文本上画一个渐变矩形。黑色主题,黑色背景,白色前景。这种方法有效吗?一开始我没怎么考虑,但我想不会有效,因为你会有一条可见的过渡线。