Поделиться через


Метод IXpsOMObjectFactory::CreateRadialGradientBrush (xpsobjectmodel.h)

Создает интерфейс IXpsOMRadialGradientBrush .

Синтаксис

HRESULT CreateRadialGradientBrush(
  [in]          IXpsOMGradientStop        *gradStop1,
  [in]          IXpsOMGradientStop        *gradStop2,
  [in]          const XPS_POINT           *centerPoint,
  [in]          const XPS_POINT           *gradientOrigin,
  [in]          const XPS_SIZE            *radiiSizes,
  [out, retval] IXpsOMRadialGradientBrush **radialGradientBrush
);

Параметры

[in] gradStop1

Интерфейс IXpsOMGradientStop , указывающий свойства градиента в источнике градиента. Этот параметр не должен иметь значение NULL.

[in] gradStop2

Интерфейс IXpsOMGradientStop , указывающий свойства градиента в конце вектора градиента, который представляет собой эллипс, который охватывает область градиента. Этот параметр не должен иметь значение NULL.

[in] centerPoint

Координаты центральной точки радиального эллипса градиента.

[in] gradientOrigin

Координаты начала радиального градиента.

[in] radiiSizes

Структура XPS_SIZE , члены которой определяют длину радиусов области градиента.

Размер описывается в единицах XPS. На дюйм приходится 96 единиц XPS. Например, радиус 1 дюйма составляет 96 единиц XPS.

XPS_SIZE Член Значение
width Длина радиуса вдоль оси X.
height Длина радиуса вдоль оси Y.

[out, retval] radialGradientBrush

Указатель на новый интерфейс IXpsOMRadialGradientBrush .

Возвращаемое значение

Метод возвращает HRESULT. Возможные значения включают, помимо прочего, значения в следующей таблице. Сведения о возвращаемых значениях API документов XPS, не перечисленных в этой таблице, см. в разделе Ошибки документа XPS.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_INVALIDARG
Недопустимая точка, описанная в centerPoint, radiiSizes или gradientOrigin . Члены структуры XPS_POINT должны содержать допустимые и конечные значения с плавающей запятой.
E_POINTER
gradStop1, gradStop2, centerPoint, gradientOrigin, radiiSizes или radialGradientBrush имеет значение NULL.
XPS_E_NO_CUSTOM_OBJECTS
gradStop1 или gradStop1 не указывают на распознаваемую реализацию интерфейса. Пользовательская реализация интерфейсов API документов XPS не поддерживается.

Комментарии

Как показано на следующем рисунке, область градиента радиального градиента — это область, заключенная в эллипс, который описывается центральной точкой и радиусами x и y, которые простираются от центральной точки. Область распространения — это область за пределами этого эллипса. Путь к градиенту (не показан) — это радиальная линия, нарисованная между источником градиента и эллипсом, ограничивающим область градиента.

Рисунок, показывающий термины, используемые в радиальном градиенте Для радиально-градиентных кистей точка градиента, заданная параметром gradStop1 , соответствует расположению источника градиента и значению смещения 0,0. Остановка градиента, заданная параметром gradStop2 , соответствует окружности области градиента и значению смещения 1,0. Дополнительные сведения об остановках градиента см. в разделе IXpsOMGradientStop.

В следующем примере кода показано, как этот метод используется для создания нового интерфейса.


IXpsOMRadialGradientBrush    *newInterface;
// The following values are defined outside of 
// this example.
//  IXpsOMGradientStop       *gradStop1, *gradStop2;
//  XPS_POINT                centerPoint, gradientOrigin;
//  XPS_SIZE                 radiiSizes;

// Note the implicit requirement that CoInitializeEx 
//  has previously been called from this thread.

hr = CoCreateInstance(
    __uuidof(XpsOMObjectFactory),
    NULL,
    CLSCTX_INPROC_SERVER,
    _uuidof(IXpsOMObjectFactory),
    reinterpret_cast<LPVOID*>(&xpsFactory)
    );

if (SUCCEEDED(hr))
{
    hr = xpsFactory->CreateRadialGradientBrush (
        gradStop1,
        gradStop2,
        &centerPoint,
        &gradientOrigin,
        &radiiSizes,
        &newInterface);

    if (SUCCEEDED(hr))
    {
        // use newInterface

        newInterface->Release();
    }
    xpsFactory->Release();
}
else
{
    // evaluate HRESULT error returned in hr
}

Требования

Требование Значение
Минимальная версия клиента Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновление платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header xpsobjectmodel.h

См. также раздел

IXpsOMGradientStop

IXpsOMObjectFactory

IXpsOMRadialGradientBrush

XPS

Ошибки документа XPS

XPS_POINT

XPS_SIZE