Share via


Interface IXpsOMGradientStop (xpsobjectmodel.h)

Representa uma única cor e local dentro de um gradiente.

Herança

A interface IXpsOMGradientStop herda da interface IUnknown . IXpsOMGradientStop também tem estes tipos de membros:

Métodos

A interface IXpsOMGradientStop tem esses métodos.

 
IXpsOMGradientStop::Clone

Faz uma cópia profunda da interface IXpsOMGradientStop.
IXpsOMGradientStop::GetColor

Obtém o valor de cor e o perfil de cor da parada de gradiente.
IXpsOMGradientStop::GetOffset

Obtém o valor de deslocamento da parada de gradiente.
IXpsOMGradientStop::GetOwner

Obtém um ponteiro para a interface IXpsOMGradientBrush que contém a parada de gradiente.
IXpsOMGradientStop::SetColor

Define o valor de cor e o perfil de cor da parada de gradiente.
IXpsOMGradientStop::SetOffset

Define o local de deslocamento da parada de gradiente.

Comentários

Uma parada de gradiente é uma cor específica definida para um local dentro da região do gradiente. A cor do gradiente muda entre as paradas de gradiente do gradiente. A área e o local absoluto do gradiente são definidos pela interface de gradiente. O deslocamento é um local relativo dentro da região do gradiente e é medido entre 0,0 e 1,0. Um deslocamento de 0,0 é o início do gradiente e 1,0 é o final. As paradas de gradiente podem ser definidas para qualquer deslocamento dentro do intervalo, incluindo os pontos finais. Essa interface descreve uma e apenas uma parada em um gradiente.

O caminho do gradiente é a linha reta que conecta o ponto inicial e o ponto final de um gradiente linear. A região de gradiente de um gradiente linear consiste na área entre o ponto inicial e o ponto final, incluindo esses pontos, e se estende em ambas as direções em um ângulo reto até o caminho do gradiente. A área de propagação é a área fora da região do gradiente.

As paradas de gradiente definem a cor em um local específico ao longo do caminho do gradiente; a cor é interpolada ao longo do caminho do gradiente entre as paradas de gradiente. No exemplo a seguir, a região do gradiente preenche a imagem, portanto, não há nenhuma área de propagação.

Para paradas de gradiente usadas em pincéis de gradiente linear, o valor de deslocamento de 0,0 corresponde ao ponto inicial do caminho do gradiente e o valor de deslocamento de 1,0 corresponde ao ponto final. Para determinar o local de uma parada de gradiente entre esses dois pontos, os valores de deslocamento intermediários são interpolados entre eles. A ilustração a seguir mostra duas paradas de gradiente intermediárias, uma em um deslocamento de 0,25 e outra em 0,75.

Uma figura que mostra os termos usados em um gradiente linear

Para paradas de gradiente usadas em pincéis radiais-gradientes, o valor de deslocamento de 0,0 corresponde ao local de origem do gradiente e o valor de deslocamento de 1,0 corresponde à circunferência da elipse que vincula o gradiente. Deslocamentos entre 0,0 e 1,0 definem uma elipse interpolada entre a origem do gradiente e a elipse delimitadora. A ilustração a seguir tem uma parada de gradiente intermediária em um deslocamento de 0,50 (gradiente parada 1). O gradiente está usando o método XPS_SPREAD_METHOD_REFLECT spread para preencher o espaço fora da região do gradiente.

Uma figura que mostra os termos usados em um gradiente radial Os cálculos usados para renderizar um gradiente são descritos na Especificação de Papel XML.

O exemplo de código a seguir ilustra como criar uma instância dessa interface.


IXpsOMGradientStop    *newInterface;
// The following values are defined outside of 
// this example.
//  XPS_COLOR                    color;
//  IXpsOMColorProfileResource    *colorProfile;
//  FLOAT                        offset;

// 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->CreateGradientStop (
        &color,
        colorProfile,
        offset,
        &newInterface);

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

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

Requisitos

   
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Atualização de Plataforma para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho xpsobjectmodel.h

Confira também

IXpsOMGradientBrush

IXpsOMObjectFactory::CreateGradientStop

Interfaces

Especificação de Papel XML