Condividi tramite


Interfaccia IXpsOMGradientStop (xpsobjectmodel.h)

Rappresenta un singolo colore e una posizione all'interno di una sfumatura.

Ereditarietà

L'interfaccia IXpsOMGradientStop eredita dall'interfaccia IUnknown . IXpsOMGradientStop include anche questi tipi di membri:

Metodi

L'interfaccia IXpsOMGradientStop include questi metodi.

 
IXpsOMGradientStop::Clone

Crea una copia completa dell'interfaccia IXpsOMGradientStop.
IXpsOMGradientStop::GetColor

Ottiene il valore del colore e il profilo colore dell'interruzione sfumatura.
IXpsOMGradientStop::GetOffset

Ottiene il valore di offset dell'interruzione sfumatura.
IXpsOMGradientStop::GetOwner

Ottiene un puntatore all'interfaccia IXpsOMGradientBrush che contiene l'interruzione del gradiente.
IXpsOMGradientStop::SetColor

Imposta il valore del colore e il profilo colore dell'interruzione sfumatura.
IXpsOMGradientStop::SetOffset

Imposta la posizione di offset dell'interruzione sfumatura.

Commenti

Un punto di interruzione sfumatura è un colore specifico definito per una posizione all'interno dell'area del gradiente. Il colore della sfumatura cambia tra le interruzioni sfumature della sfumatura. L'area e la posizione assoluta della sfumatura sono definite dall'interfaccia sfumatura. L'offset è una posizione relativa all'interno dell'area del gradiente e viene misurata tra 0,0 e 1,0. Un offset pari a 0,0 è l'inizio della sfumatura e 1,0 è la fine. Le interruzioni sfumature possono essere definite per qualsiasi offset all'interno dell'intervallo, inclusi i punti finali. Questa interfaccia descrive una e una sola fermata in una sfumatura.

Il percorso sfumato è la linea retta che collega il punto iniziale e il punto finale di una sfumatura lineare. L'area del gradiente di una sfumatura lineare è costituita dall'area tra il punto iniziale e il punto finale, inclusi questi punti, e si estende in entrambe le direzioni in corrispondenza di un angolo destro del percorso della sfumatura. L'area di diffusione è l'area all'esterno dell'area del gradiente.

Le interruzioni sfumature definiscono il colore in una posizione specifica lungo il percorso sfumato; il colore viene interpolato lungo il percorso sfumato tra le interruzioni sfumature. Nell'esempio seguente, l'area sfumatura riempie l'immagine, quindi non esiste alcuna area di diffusione.

Per le interruzioni sfumature utilizzate nei pennelli a sfumatura lineare, il valore di offset 0,0 corrisponde al punto iniziale del percorso sfumato e il valore di offset 1,0 corrisponde al punto finale. Per determinare la posizione di un punto di interruzione sfumatura tra questi due punti, i valori di offset intermedi vengono interpolati tra di essi. La figura seguente mostra due interruzioni di sfumatura intermedie, una in corrispondenza di un offset pari a 0,25 e un'altra a 0,75.

Figura che mostra i termini usati in una sfumatura lineare

Per le interruzioni sfumature utilizzate nei pennelli a sfumatura radiale, il valore di offset 0,0 corrisponde alla posizione di origine della sfumatura e il valore di offset 1,0 corrisponde alla circonferenza dell'ellisse che delimita la sfumatura. Gli offset compresi tra 0,0 e 1.0 definiscono un'ellisse interpolata tra l'origine della sfumatura e l'ellisse di delimitazione. L'illustrazione seguente ha un'interruzione sfumatura intermedia in corrispondenza di un offset pari a 0,50 (interruzione sfumatura 1). La sfumatura usa il metodo spread XPS_SPREAD_METHOD_REFLECT per riempire lo spazio all'esterno dell'area del gradiente.

Figura che mostra i termini utilizzati in una sfumatura radiale I calcoli utilizzati per eseguire il rendering di una sfumatura sono descritti nella specifica xml paper.

L'esempio di codice seguente illustra come creare un'istanza di questa interfaccia.


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
}

Requisiti

   
Client minimo supportato Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione xpsobjectmodel.h

Vedi anche

IXpsOMGradientBrush

IXpsOMObjectFactory::CreateGradientStop

Interfacce

XML Paper Specification