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 文档错误。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
由 centerPoint、radiiSizes 或 gradientOrigin 描述的点无效。 XPS_POINT结构的成员必须包含有效和有限的浮点值。 |
|
gradStop1、 gradStop2、 centerPoint、 gradientOrigin、 radiiSizes 或 radialGradientBrush 为 NULL。 |
|
gradStop1 或 gradStop1 不指向已识别的接口实现。 不支持 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,
¢erPoint,
&gradientOrigin,
&radiiSizes,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | xpsobjectmodel.h |