Condividi tramite


Metodo IXpsOMObjectFactory::CreateRadialGradientBrush (xpsobjectmodel.h)

Crea un'interfaccia IXpsOMRadialGradientBrush .

Sintassi

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
);

Parametri

[in] gradStop1

Interfaccia IXpsOMGradientStop che specifica le proprietà della sfumatura in corrispondenza dell'origine della sfumatura. Questo parametro non deve essere NULL.

[in] gradStop2

Interfaccia IXpsOMGradientStop che specifica le proprietà della sfumatura alla fine del vettore della sfumatura, ovvero l'ellisse che racchiude l'area del gradiente. Questo parametro non deve essere NULL.

[in] centerPoint

Coordinate del punto centrale dell'ellisse della sfumatura radiale.

[in] gradientOrigin

Coordinate dell'origine della sfumatura radiale.

[in] radiiSizes

Struttura XPS_SIZE i cui membri specificano le lunghezze dei raggi dell'area sfumatura.

Le dimensioni sono descritte in unità XPS. Ci sono 96 unità XPS per pollice. Ad esempio, un raggio 1" è 96 unità XPS.

XPS_SIZE Membro Significato
width Lunghezza del raggio lungo l'asse x.
height Lunghezza del raggio lungo l'asse y.

[out, retval] radialGradientBrush

Puntatore alla nuova interfaccia IXpsOMRadialGradientBrush .

Valore restituito

Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non solo, quelli nella tabella che segue. Per informazioni sui valori restituiti dell'API documento XPS non elencati in questa tabella, vedere Errori del documento XPS.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
E_INVALIDARG
Il punto descritto da centerPoint, radiiSizes o gradientOrigin non è valido. I membri della struttura XPS_POINT devono contenere valori a virgola mobile validi e finiti.
E_POINTER
gradStop1, gradStop2, centerPoint, gradientOrigin, radiiSizes o radialGradientBrush è NULL.
XPS_E_NO_CUSTOM_OBJECTS
gradStop1 o gradStop1 non punta a un'implementazione dell'interfaccia riconosciuta. L'implementazione personalizzata delle interfacce API documento XPS non è supportata.

Commenti

Come illustrato nella figura seguente, l'area sfumatura di una sfumatura radiale è l'area racchiusa dall'ellisse descritta dal punto centrale e dal raggio x e y che si estendono dal punto centrale. L'area di diffusione è l'area all'esterno di quell'ellisse. Il percorso sfumato (non visualizzato) è una linea radiale disegnata tra l'origine della sfumatura e l'ellisse che delimita l'area del gradiente.

Figura che mostra i termini utilizzati in una sfumatura radiale Per i pennelli a sfumatura radiale, l'interruzione sfumatura impostata dal parametro gradStop1 corrisponde alla posizione di origine della sfumatura e un valore di offset pari a 0,0. L'interruzione sfumatura impostata dal parametro gradStop2 corrisponde alla circonferenza dell'area del gradiente e un valore di offset pari a 1,0. Per altre informazioni sulle interruzioni sfumature, vedere IXpsOMGradientStop.

Nell'esempio di codice seguente viene illustrato come viene usato questo metodo per creare una nuova interfaccia.


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
}

Requisiti

Requisito Valore
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

IXpsOMGradientStop

IXpsOMObjectFactory

IXpsOMRadialGradientBrush

XML Paper Specification

Errori del documento XPS

XPS_POINT

XPS_SIZE