Aracılığıyla paylaş


IVsGradient.DrawGradient Yöntem (IntPtr, IntPtr, RECT[], RECT )

 

Belirli bir degrade belirtilen konumda çizer.

Ad Alanı:   Microsoft.VisualStudio.Shell.Interop
Derleme:  Microsoft.VisualStudio.Shell.Interop.8.0 (Microsoft.VisualStudio.Shell.Interop.8.0.dll içinde)

Sözdizimi

int DrawGradient(
    IntPtr hwnd,
    IntPtr hdc,
    RECT[] gradientRect,
    RECT[] sliceRect
)
int DrawGradient(
    IntPtr hwnd,
    IntPtr hdc,
    array<RECT>^ gradientRect,
    array<RECT>^ sliceRect
)
abstract DrawGradient : 
        hwnd:nativeint *
        hdc:nativeint *
        gradientRect:RECT[] *
        sliceRect:RECT[] -> int
Function DrawGradient (
    hwnd As IntPtr,
    hdc As IntPtr,
    gradientRect As RECT(),
    sliceRect As RECT()
) As Integer

Parametreler

  • hwnd
    [in] Degradeyle boyanması bölgesi içeren bir pencere tanıtıcısı.
  • hdc
    [in] Degrade çiziminde kullanılan aygıt içerik işleci.
  • gradientRect
    [in] Degrade dikdörtgen veya tam ölçüde ve degrade üzerinde uygulanabilir geometri tanımlama içeren bölge.
  • sliceRect
    [in] Üzerinde bir degrade gerçekten boyanmış ülkeyi tanımlayan dilim dikdörtgen.

Dönüş Değeri

Type: System.Int32

Yöntem başarılı olursa, verir S_OK.Başarısız olursa, bir hata kodu döndürür.

Notlar

com imzası

Vsshell80.idl:

HRESULT IVsGradient::DrawGradient(
   [in] HWND hwnd,
   [in] HDC hdc,
   [in] RECT * gradientRect,
   [in] RECT * sliceRect
);

Her ikisi de gradientRect ve sliceRect tanıtıcısı tarafından belirtilen pencere tarafından tanımlanan koordinat sisteminde tanımlanmalıdır hwnd.

Ortamı sdk degradeler statik ve statik olmayan iki tür destekler.

Hangi degradeler statiktir ve statik olmayan ve bu olası etkileri olduğu için daha fazla bilgi için bkz: __GRADIENTTYPE.

Statik degradeler için degrade dikdörtgenin kalıcı bir tanım ortamını korur ve gradientRect parametre yoksayılır.

Tarafından belirlenen dilim dikdörtgen sliceRect parametresi her zaman içerdiği belirtilen dikdörtgeni tarafından tanımlanan dikdörtgenin içinde gradientRect parametresi.

İki dikdörtgen bölgeleri gradientRect ve sliceRect tanımlamak nasıl DrawGradient yöntemi, bir kullanıcı Arabirimi öğesinin bir degrade boyar.

gradientRect Degrade dikdörtgen veya içeren bölge dikdörtgen olarak adlandırılır.Onu tam ölçüde ve degrade üzerinde uygulanabilir konumunu belirtir.

sliceRect Dikdörtgen Dilim dikdörtgen olarak adlandırılan ve spec burada degrade aslında boyanmış bölge belirtir.

Degradeler maskeleme, dilim dikdörtgen degrade dikdörtgenin içinde bulunduğu farklı boyutta degrade ve dilim dikdörtgenler kullanılarak gerçekleştirilebilir.Bu durumda, bir UI öğesi yalnızca bir kısmını degradeyle boyanan, ancak tüm degrade dikdörtgen boyanmış gibi degrade desen korunur.

Örneğin, boyama 10 piksel geniş çerçeve üzerinde 100 x 100 piksel geniş bölge yapılabilir

  1. degrade bir dikdörtgenle tanımlayan bir RECT yapısıyla köşelere sahip bir sol üst köşesindeki (0,0) ve bir sağ alt köşede (100,100).

  2. tanımlayan dört 10 piksel genişliğinde dilim RECT yapıları,

    • birinde bir sol üst köşesindeki (0,0) ve bir sağ alt köşede (100,10)

    • birinde bir sol üst köşesindeki (0,0) ve bir sağ alt köşede (10,100)

    • birinde (90,0) sol üst köşesinde ve bir sağ alt köşede (100,100)

    • birinde (0,90) sol üst köşesinde ve bir sağ alt köşede (100,10)

  3. Arayan IVsGradient.DrawGradient kez her biri için dört kez dilim dikdörtgen ve her zaman aynı degrade dikdörtgen kullanma.

Buna ek olarak, yuvarlak bir denetimle boyama yaparken örneği corners için köpekba FIN sekmesini veya kolayca kırpılmış veya maskelenmiş dikdörtgen olmayan bir bölge dikdörtgen boyama belirli koşullarda tatmin edici olmayabilir.

Bu gibi durumlarda, array veya vector tarafından döndürülen renklerin temel alan belirli bir degrade boyama fırça VSPackages oluşturmalısınız GetGradientVector yöntemi.

Örneğin, karmaşık dosyası sekmelerini sekmesi--FIN, metin alanı ve burada bileşenleri arasında renk değiştirme çizilmesi, son--üç bileşen oluşturarak ve uzatarak çizilmiş.Belirli bir rengin her piksel tarafından döndürülen array öğesinde değiştirilmesi GetGradientVector yatay eksende konumuna karşılık gelen.

Daha fazla bilgi için bkz: How to: Use Visual Studio Gradient Support.

Ayrıca bkz.

IVsGradient Arabirim
Microsoft.VisualStudio.Shell.Interop Ad Alanı

Başa dön