在指定位置绘制特定渐变。
命名空间: Microsoft.VisualStudio.Shell.Interop
程序集: Microsoft.VisualStudio.Shell.Interop.8.0(在 Microsoft.VisualStudio.Shell.Interop.8.0.dll 中)
语法
声明
Function DrawGradient ( _
hwnd As IntPtr, _
hdc As IntPtr, _
gradientRect As RECT(), _
sliceRect As RECT() _
) As Integer
int DrawGradient(
IntPtr hwnd,
IntPtr hdc,
RECT[] gradientRect,
RECT[] sliceRect
)
参数
- hwnd
类型:System.IntPtr
[in] 包含区域的窗口的句柄将绘制具有渐变。
- hdc
类型:System.IntPtr
[in] 设备上下文句柄在绘制使用了渐变。
- gradientRect
类型:array<Microsoft.VisualStudio.OLE.Interop.RECT[]
[in] 渐变矩形或包含区域,定义渐变无法应用的完整区域和几何图形。
- sliceRect
类型:array<Microsoft.VisualStudio.OLE.Interop.RECT[]
[in] 切片矩形,定义渐变实际绘制的区域。
返回值
类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。
备注
COM 签名
从 vsshell80.idl:
HRESULT IVsGradient::DrawGradient(
[in] HWND hwnd,
[in] HDC hdc,
[in] RECT * gradientRect,
[in] RECT * sliceRect
);
在窗口中定义的坐标系统必须定义 gradientRect 和 sliceRect 指定由处理, hwnd。
环境 SDK 支持两个非静态的渐变的类型静态和。
有关渐变是静态的,而是非静态的和其含义的信息,请参见 __GRADIENTTYPE。
对静态渐变,该环境维护渐变矩形的一个永久定义,并 gradientRect 参数将被忽略。
应在矩形定义的矩形内始终包含 sliceRect 参数指定的切片矩形指定由 gradientRect 参数。
两个矩形区域 gradientRect 和 sliceRect 定义 DrawGradient 方法如何绘制在 UI 元素的一个渐变。
gradientRect 矩形调用渐变矩形或包含区域。它指定渐变无法应用的完整区域和位置。
sliceRect 矩形调用切片矩形,并且规范指定渐变实际绘制的区域。
蒙板渐变来完成。使用不同大小的渐变和切片矩形,切片矩形在渐变矩形包含。在这种情况下,只有部分的 UI 元素绘制具有渐变,但是,渐变模式保留,就象整个渐变矩形绘制的。
例如,绘制在 100 的 10 像素宽的帧 x 100 像素宽区域可以执行
定义与一 RECT 结构的一个渐变矩形与一个左上角位于 (0,0) 和一个右下角的左上角位于 (100,100)。
定义四个 10 像素宽的切片 RECT 结构,
与一个左上角位于 (0,0) 和一个右下角位于 (100,10)
与一个左上角位于 (0,0) 和一个右下角位于 (10,100)
与一个左上角位于 (90,0) 和一个右下角位于 (100,100)
与一个左上角位于 (0,90) 和一个右下角位于 (100,10)
调用 IVsGradient.DrawGradient 四次,一次的每个切片矩形和始终使用相同的渐变矩形。
此外,矩形绘制可能不令人满意的某一情况,例如,在绘制带圆角的控件,鲨鱼飞翅选项或不容易被剪辑也不被屏蔽的非矩形区域时。
在这些情况下, Vspackage 应创建绘制的特定渐变画笔基于 GetGradientVector 方法返回的颜色或矢量。
例如,复杂的文件选项可以构造选项卡的三个元素绘制--飞翅、文本和结束--如果元素通过颜色替换和拉伸要绘制。特定颜色的每个像素将 GetGradientVector 返回的数组的元素替换相应其在该级别的轴的位置。
有关更多信息,请参见 How to: Use Visual Studio Gradient Support。
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。