IXpsOMGradientStop-Schnittstelle (xpsobjectmodel.h)

Stellt eine einzelne Farbe und Position innerhalb eines Farbverlaufs dar.

Vererbung

Die IXpsOMGradientStop-Schnittstelle erbt von der IUnknown-Schnittstelle . IXpsOMGradientStop verfügt auch über folgende Membertypen:

Methoden

Die IXpsOMGradientStop-Schnittstelle verfügt über diese Methoden.

 
IXpsOMGradientStop::Clone

Erstellt eine tiefe Kopie der IXpsOMGradientStop-Schnittstelle.
IXpsOMGradientStop::GetColor

Ruft den Farbwert und das Farbprofil des Farbverlaufsstopps ab.
IXpsOMGradientStop::GetOffset

Ruft den Offsetwert des Farbverlaufsstopps ab.
IXpsOMGradientStop::GetOwner

Ruft einen Zeiger auf die IXpsOMGradientBrush-Schnittstelle ab, die den Farbverlaufsstopp enthält.
IXpsOMGradientStop::SetColor

Legt den Farbwert und das Farbprofil des Farbverlaufsstopps fest.
IXpsOMGradientStop::SetOffset

Legt die Offsetposition des Farbverlaufsstopps fest.

Hinweise

Ein Farbverlaufsstopp ist eine bestimmte Farbe, die für eine Position innerhalb des Farbverlaufsbereichs definiert ist. Die Farbe des Farbverlaufs ändert sich zwischen den Farbverlaufsstopps des Farbverlaufs. Der Bereich und die absolute Position des Farbverlaufs werden durch die Farbverlaufsschnittstelle definiert. Der Offset ist eine relative Position innerhalb des Farbverlaufsbereichs und wird zwischen 0,0 und 1,0 gemessen. Ein Offset von 0,0 ist der Anfang des Farbverlaufs und 1,0 das Ende. Farbverlaufsstopps können für jeden Offset innerhalb des Bereichs definiert werden, einschließlich der Endpunkte. Diese Schnittstelle beschreibt nur einen Stopp in einem Farbverlauf.

Der Farbverlaufspfad ist die gerade Linie, die den Startpunkt und den Endpunkt eines linearen Farbverlaufs verbindet. Der Farbverlaufsbereich eines linearen Farbverlaufs besteht aus dem Bereich zwischen dem Startpunkt und dem Endpunkt, einschließlich dieser Punkte, und erstreckt sich in beide Richtungen im rechten Winkel zum Farbverlaufspfad. Der Verteilungsbereich ist der Bereich außerhalb des Farbverlaufsbereichs.

Farbverlaufsstopps definieren die Farbe an einer bestimmten Stelle entlang des Farbverlaufspfads. die Farbe wird entlang des Farbverlaufspfads zwischen den Farbverlaufsstopps interpoliert. Im folgenden Beispiel füllt der Farbverlaufsbereich das Bild aus, sodass kein Streubereich vorhanden ist.

Bei Farbverlaufsstopps, die in linearen Farbverlaufspinsel verwendet werden, entspricht der Offsetwert 0,0 dem Startpunkt des Farbverlaufspfads, und der Offsetwert von 1,0 entspricht dem Endpunkt. Um die Position eines Farbverlaufsstopps zwischen diesen beiden Punkten zu bestimmen, werden zwischen diesen zwischengeschaltete Offsetwerte interpoliert. Die folgende Abbildung zeigt zwei zwischengeschaltete Farbverlaufsstopps, eine mit einem Offset von 0,25 und eine weitere bei 0,75.

Abbildung, die die in einem linearen Farbverlauf verwendeten Begriffe zeigt

Bei Farbverlaufsstopps, die in radialen Farbverlaufspinsel verwendet werden, entspricht der Offsetwert 0,0 der Position des Farbverlaufsursprungs, und der Offsetwert von 1,0 entspricht dem Umfang der Ellipse, die den Farbverlauf begrenzt. Offsets zwischen 0,0 und 1,0 definieren eine Ellipse, die zwischen dem Farbverlaufsursprung und der begrenzungsenden Ellipse interpoliert wird. Die folgende Abbildung zeigt einen zwischengeschalteten Farbverlaufsstopp bei einem Offset von 0,50 (Farbverlaufsstopp 1). Der Farbverlauf verwendet die XPS_SPREAD_METHOD_REFLECT spread-Methode , um den Bereich außerhalb des Farbverlaufsbereichs auszufüllen.

Abbildung, die die in einem radialen Farbverlauf verwendeten Begriffe zeigt Die Berechnungen, die zum Rendern eines Farbverlaufs verwendet werden, werden in der XML-Papierspezifikation beschrieben.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie eine instance dieser Schnittstelle erstellen.


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
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile xpsobjectmodel.h

Weitere Informationen

IXpsOMGradientBrush

IXpsOMObjectFactory::CreateGradientStop

Schnittstellen

XML Paper Specification