【问题标题】:WPF TextBlock gradientWPF 文本块渐变
【发布时间】:2015-04-05 23:21:34
【问题描述】:

如何将它从 XAML 转换为 c#

<TextBlock x:Name="Cell0" FontSize="72" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="50">
            <TextBlock.Background>
                <RadialGradientBrush>
                    <GradientStop Color="Cyan" Offset="0"/>
                    <GradientStop Color="White" Offset="1"/>
                </RadialGradientBrush>
            </TextBlock.Background>1</TextBlock>

我已经尝试过这样的

RadialGradientBrush radialGradientBrush = new RadialGradientBrush();
            radialGradientBrush.GradientOrigin = new Point(5, 5);
            radialGradientBrush.Center = new Point(5, 5);
            radialGradientBrush.RadiusX = 5;
            radialGradientBrush.RadiusY = 5;
            radialGradientBrush.GradientStops.Add(new GradientStop(Colors.Cyan, 0.0));
            radialGradientBrush.GradientStops.Add(new GradientStop(Colors.White, 1));
Cell0.Background = radialGradientBrush

但是这不起作用,然后我尝试将 Radius 的 5 替换为 10 并且出现青色,但不是渐变

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    仅初始化您在 XAML 中执行的相同元素,因此在您的情况下不要设置 GradientOriginCenterRadiusX/RadiusY 并将其简化为

    RadialGradientBrush radialGradientBrush = new RadialGradientBrush();
    radialGradientBrush.GradientStops.Add(new GradientStop(Colors.Cyan, 0.0));
    radialGradientBrush.GradientStops.Add(new GradientStop(Colors.White, 1));
    Cell0.Background = radialGradientBrush;
    

    【讨论】:

    • 太好了,谢谢我尝试删除半径,但由于没有尝试删除其余部分
    • 没问题@Mathias。很高兴它有帮助
    【解决方案2】:

    试试这个

       RadialGradientBrush myRadialGradientBrush = new RadialGradientBrush();
        myRadialGradientBrush.GradientOrigin = new Point(0.5, 0.5);
        myRadialGradientBrush.Center = new Point(0.5, 0.5);
        myRadialGradientBrush.RadiusX = 0.5;
        myRadialGradientBrush.RadiusY = 0.5;
        myRadialGradientBrush.GradientStops.Add(
                        new GradientStop(Colors.Cyan, 0.0));
        myRadialGradientBrush.GradientStops.Add(
                        new GradientStop(Colors.White, 1.0));
    
        cell0.Fill = myRadialGradientBrush;
    

    【讨论】:

      【解决方案3】:
      <UserControl.Resources>
          <LinearGradientBrush x:Key="GridLabelColor" StartPoint="0.25,0" EndPoint="0.65,1" Opacity=".5">
              <GradientStop Color="AliceBlue" Offset="0"/>
              <GradientStop Color="Silver" Offset=".35"/>
              <GradientStop Color="Navy" Offset="0.85"/>
          </LinearGradientBrush>
      </UserControl.Resources>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-01
        • 2017-02-06
        • 1970-01-01
        • 2018-07-25
        相关资源
        最近更新 更多