Как использовать LinearGradientBrush и фон

Я пытаюсь нарисовать фон моего окна WPF с помощью LinearGradientBrush, однако мой код не работает. Вот код

LinearGradientBrush gradientBrush = new  LinearGradientBrush( Color.FromArgb(0, 209, 227, 250),  Color.FromArgb(0, 170, 199, 238), new Point(0.5, 0), new Point(0.5, 1));
Background = gradientBrush;

К сожалению, мое окно все еще белое. Можно ли изменить цвет фона окна с помощью кода?


person wpflerner    schedule 11.09.2011    source источник
comment
Оба ваших цвета являются прозрачными, поэтому Background будет отображаться как черный, если только вы не установили AllowsTransparency в значение true. Я думаю, вы хотите использовать 255 вместо 0 для альфа-канала. Если вы пытаетесь установить этот Background в конструкторе Windows и все еще не видите его, то это потому, что какой-то другой элемент управления в вашем Window (возможно, Panel) имеет другой набор Background. Попробуйте установить его в Window без каких-либо элементов управления.   -  person Fredrik Hedblad    schedule 12.09.2011
comment
@Х.Б. Нет веской причины, просто начал писать это как комментарий, так как ОП сказал, что его Window все еще White. Вероятно, следовало опубликовать ответ вместо этого ..   -  person Fredrik Hedblad    schedule 12.09.2011


Ответы (3)


Вы также устанавливаете альфа-параметр. Используйте это вместо этого, так как вам нужен цвет:

LinearGradientBrush gradientBrush = new  LinearGradientBrush( Color.FromRgb( 209, 227, 250),  Color.FromRgb(170, 199, 238), new Point(0.5, 0), new Point(0.5, 1));
Background = gradientBrush;
person Oltamor    schedule 24.11.2012

  <Border.Background>
                <LinearGradientBrush StartPoint="0 0" EndPoint="0 1">
                    <LinearGradientBrush.GradientStops>
                        <GradientStop Offset="0.1" Color="{Binding Path=YourBindColor1}" />
                        <GradientStop Offset="1" Color="{Binding Path=YourBindColor2}" />
                    </LinearGradientBrush.GradientStops>
                </LinearGradientBrush>
            </Border.Background>

//Используем цвета привязки

person xrhstos    schedule 18.04.2018

Установка Window.Background на другую кисть должна работать.

Убедитесь, что ваше свойство Background не связано данными со свойством через директиву {Binding}.

Кроме того, попробуйте установить более простую кисть, например

Background = new SolidColorBrush(Colors.Black);

person Maxim V. Pavlov    schedule 11.09.2011
comment
Но мне нужно получить эффект градиента. Если я использую SolidColorBrush, это будет только один цвет. - person wpflerner; 12.09.2011