Avatar billede reds2001 Nybegynder
08. januar 2004 - 17:37 Der er 4 kommentarer og
2 løsninger

Avanceret Backcolor

Hvordan får jeg en farve til at ændre sig fra eksempelvis mørk blå i venstre side af formen til lys blå i højre side?
Avatar billede pelkjaer Nybegynder
08. januar 2004 - 17:50 #1
Det er mere et design eller i det mindste et html sp.

I html _kan_ du få det til at du med noget blend filter - men kun til IE.

Som et billede kan du nemt lave en bg gif i photoshop.
Avatar billede omen Nybegynder
08. januar 2004 - 19:23 #2
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=1899&lngWId=10
Så kan du evt. lege lidt med det, for at få det til at være som du vil ha det.
Avatar billede kinggenesis Nybegynder
12. januar 2004 - 19:19 #3
Jeg har lavet eksemplet i Omens link til VB, og så det gradiere mellem to farver.
Det skal ind i et objects paint evenr (eks. en form)

        Dim paintObj As Form= CType(sender, Form)

        Dim colorA As Color = Color.FromArgb(10, 36, 106)
        Dim colorB As Color = Color.FromArgb(166, 202, 240)

        Dim g As Graphics = e.Graphics

        Dim paintPosX As Single

        Dim paintColor As Color = colorA

        Dim paintR As Single = paintColor.R
        Dim paintG As Single = paintColor.G
        Dim paintB As Single = paintColor.B

        Dim incrementR As Single = CSng((CInt(colorB.R) - CInt(colorA.R)) / paintObj.Width)
        Dim incrementG As Single = CSng((CInt(colorB.G) - CInt(colorA.G)) / paintObj.Width)
        Dim incrementB As Single = CSng((CInt(colorB.B) - CInt(colorA.B)) / paintObj.Width)

        For paintPosX = 0 To paintObj.Width
            paintColor = Color.FromArgb(CInt(paintR), CInt(paintG), CInt(paintB))
            g.FillRectangle(New SolidBrush(paintColor), paintPosX, 0, 1, paintObj.Height)
            paintR += incrementR : paintG += incrementG : paintB += incrementB
        Next
Avatar billede calundan Nybegynder
21. januar 2004 - 00:10 #4
kinggenesis har ret, men det kan altså gøres smartere.

Public Sub DoPaint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
      Dim g As Graphics = e.Graphics
      g.Clip = New Region(e.ClipRectangle())
      Dim br As LinearGradientBrush = New LinearGradientBrush(New Point(0, 0), New Point(Width, Height), Color.DarkBlue, Color.LightBlue)
      g.FillRectangle(br, e.ClipRectangle)
end sub


Bemærk at dette kræver at du importerer system.drawing og system.drawing.drawing2d
Avatar billede reds2001 Nybegynder
21. januar 2004 - 07:28 #5
tak for hjælpen
Avatar billede kinggenesis Nybegynder
21. januar 2004 - 08:58 #6
Hvorfor har ingen fortalt mig det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester