共用方式為


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。 可能的值包括下列數據表中的值,但不限於這些值。 如需此表格中未列出的 XPS 檔 API 傳回值的相關信息,請參閱 XPS 檔錯誤

傳回碼 描述
S_OK
此方法已成功。
E_INVALIDARG
centerPointradiiSizesgradientOrigin 所描述的點無效。 XPS_POINT 結構的成員必須包含有效和有限的浮點值。
E_POINTER
gradStop1gradStop2centerPointgradientOriginradiiSizesradialGradientBrushNULL
XPS_E_NO_CUSTOM_OBJECTS
gradStop1gradStop1 不會指向已辨識的介面實作。 不支援 XPS 檔 API 介面的自定義實作。

備註

如下圖所示,星形漸層的漸層區域是由中心點所描述的橢圓形所括住的區域,以及從中心點延伸的 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 Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 xpsobjectmodel.h

另請參閱

IXpsOMGradientStop

IXpsOMObjectFactory

IXpsOMRadialGradientBrush

XML Paper Specification

XPS 檔案錯誤

XPS_POINT

XPS_SIZE