GradientStop - класс

Обновлен: Ноябрь 2007

Описывает местоположение и цвет точек перехода в градиенте.

Пространство имен:  System.Windows.Media
Сборка:  PresentationCore (в PresentationCore.dll)
XMLNS для XAML: http://schemas.microsoft.com/winfx/xaml/presentation

[LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable)]
public sealed class GradientStop : Animatable, 
	IFormattable
/** @attribute LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable) */
public final class GradientStop extends Animatable implements IFormattable
public final class GradientStop extends Animatable implements IFormattable

Пользуйтесь этим классом для описания цветов в LinearGradientBrush или RadialGradientBrush.

Обратите внимание, что данный класс не предоставляет свойства прозрачности; для того чтобы сделать GradientStop полупрозрачным, присвойте его свойству GradientStop.Color прозрачный Color.

Возможности замораживания

GradientStop является объектом типа Freezable и поэтому может замораживаться для повышения производительности. Сведения о таких возможностях класса Freezable, как замораживание и клонирование, см. в разделе Общие сведения об объектах класса Freezable.

В этом примере показано использование класса LinearGradientBrush для закрашивания области с линейным градиентом. В следующем примере, Fill для Rectangle закрашено с использованием диагонального линейного градиента с переходом цвета от желтого к красному, синему и затем зеленому.

<!-- This rectangle is painted with a diagonal linear gradient. -->
<Rectangle Width="200" Height="100">
  <Rectangle.Fill>
    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
      <GradientStop Color="Yellow" Offset="0.0" />
      <GradientStop Color="Red" Offset="0.25" />
      <GradientStop Color="Blue" Offset="0.75" />
      <GradientStop Color="LimeGreen" Offset="1.0" />
    </LinearGradientBrush>
  </Rectangle.Fill>
</Rectangle>


Rectangle diagonalFillRectangle = new Rectangle();
diagonalFillRectangle.Width = 200;
diagonalFillRectangle.Height = 100;

// Create a diagonal linear gradient with four stops.   
LinearGradientBrush myLinearGradientBrush =
    new LinearGradientBrush();
myLinearGradientBrush.StartPoint = new Point(0,0);
myLinearGradientBrush.EndPoint = new Point(1,1);
myLinearGradientBrush.GradientStops.Add(
    new GradientStop(Colors.Yellow, 0.0));
myLinearGradientBrush.GradientStops.Add(
    new GradientStop(Colors.Red, 0.25));                
myLinearGradientBrush.GradientStops.Add(
    new GradientStop(Colors.Blue, 0.75));        
myLinearGradientBrush.GradientStops.Add(
    new GradientStop(Colors.LimeGreen, 1.0));

// Use the brush to paint the rectangle.
diagonalFillRectangle.Fill = myLinearGradientBrush;


Ниже показан градиент, созданный в предыдущем примере.

Диагональный линейный градиент

Чтобы создать горизонтальный линейный градиент, измените значение свойства StartPoint и EndPoint объекта LinearGradientBrush на (0,0.5) и (1,0.5). В следующем примере объект Rectangle закрашен с использованием горизонтального линейного градиента.

<!-- This rectangle is painted with a horizontal linear gradient. -->
<Rectangle Width="200" Height="100">
  <Rectangle.Fill>
    <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
      <GradientStop Color="Yellow" Offset="0.0" />
      <GradientStop Color="Red" Offset="0.25" />
      <GradientStop Color="Blue" Offset="0.75" />
      <GradientStop Color="LimeGreen" Offset="1.0" />
    </LinearGradientBrush>
  </Rectangle.Fill>
</Rectangle>


Rectangle horizontalFillRectangle = new Rectangle();
horizontalFillRectangle.Width = 200;
horizontalFillRectangle.Height = 100;

// Create a horizontal linear gradient with four stops.   
LinearGradientBrush myHorizontalGradient =
    new LinearGradientBrush();
myHorizontalGradient.StartPoint = new Point(0,0.5);
myHorizontalGradient.EndPoint = new Point(1,0.5);
myHorizontalGradient.GradientStops.Add(
    new GradientStop(Colors.Yellow, 0.0));
myHorizontalGradient.GradientStops.Add(
    new GradientStop(Colors.Red, 0.25));                
myHorizontalGradient.GradientStops.Add(
    new GradientStop(Colors.Blue, 0.75));        
myHorizontalGradient.GradientStops.Add(
    new GradientStop(Colors.LimeGreen, 1.0));

// Use the brush to paint the rectangle.
horizontalFillRectangle.Fill = myHorizontalGradient; 



Ниже показан градиент, созданный в предыдущем примере.

Горизонтальный линейный градиент

Чтобы создать вертикальный линейный градиент, измените значение свойства StartPoint и EndPoint объекта LinearGradientBrush на (0.5,0) и (0.5,1). В следующем примере объект Rectangle закрашен с использованием вертикального линейного градиента.

<!-- This rectangle is painted with a vertical gradient. -->
<Rectangle Width="200" Height="100">
  <Rectangle.Fill>
    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
      <GradientStop Color="Yellow" Offset="0.0" />
      <GradientStop Color="Red" Offset="0.25" />
      <GradientStop Color="Blue" Offset="0.75" />
      <GradientStop Color="LimeGreen" Offset="1.0" />
    </LinearGradientBrush>
  </Rectangle.Fill>
</Rectangle>


Rectangle verticalFillRectangle = new Rectangle();
verticalFillRectangle.Width = 200;
verticalFillRectangle.Height = 100;

// Create a vertical linear gradient with four stops.   
LinearGradientBrush myVerticalGradient =
    new LinearGradientBrush();
myVerticalGradient.StartPoint = new Point(0.5,0);
myVerticalGradient.EndPoint = new Point(0.5,1);
myVerticalGradient.GradientStops.Add(
    new GradientStop(Colors.Yellow, 0.0));
myVerticalGradient.GradientStops.Add(
    new GradientStop(Colors.Red, 0.25));                
myVerticalGradient.GradientStops.Add(
    new GradientStop(Colors.Blue, 0.75));        
myVerticalGradient.GradientStops.Add(
    new GradientStop(Colors.LimeGreen, 1.0));

// Use the brush to paint the rectangle.
verticalFillRectangle.Fill = myVerticalGradient;  


Ниже показан градиент, созданный в предыдущем примере.

Вертикальный линейный градиент
ms635053.alert_note(ru-ru,VS.90).gifПримечание.

В примерах в этом разделе используется система координат по умолчанию для установки начальной и конечной точки. Система координат по умолчанию связана с ограничивающим прямоугольником: 0 указывает 0 процентов ограничивающего прямоугольника и 1 — 100 процентов. Можно изменить эту систему координат, задав свойству MappingMode значение BrushMappingMode.Absolute. Абсолютная система координат определяется не относительно ограничивающего прямоугольника. Значения интерпретируются непосредственно в локальной области.

Дополнительные примеры см. в разделе Пример использования кистей. Дополнительные сведения о градиенте и других типах кистей содержатся в разделе Общие сведения о закраске сплошным цветом и градиентом.

Дополнительный код

Практическое руководство. Закраска области с применением радиального градиентаВ этом примере показано использование класса RadialGradientBrush для закраски области с применением радиального градиента.

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

Windows Vista

Среды .NET Framework и .NET Compact Framework поддерживают не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

.NET Framework

Поддерживается в версиях: 3.5, 3.0
Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft