Diskuze: Změna směru přechodu

C# .NET .NET (C# a Visual Basic) Změna směru přechodu American English version English version

Avatar
David Mlčoch
Redaktor
Avatar
David Mlčoch:

Zdravím, když mám tento kód a směr je z levého horního kraje do dolního pravého okraje, tak jak změním, aby třeba přechod byl zleva - doprava, nebo ze středu?
Dim cDialog As New ColorDialog()
cDialog.Color = Button7.BackColor ' initial selection is current color.
If (cDialog.Show­Dialog() = DialogResult.OK) Then
Button7.BackColor = cDialog.Color
Dim img As New Bitmap(Button9­.Width, Button9.Height)
Dim brush As New Drawing.Drawin­g2D.LinearGra­dientBrush(New PointF(0, 0), New PointF(Button9­.Width, Button9.Height), Button7.BackColor, Button1.BackColor)
Dim gr As Graphics = Graphics.FromI­mage(img)
gr.FillRectan­gle(brush, New RectangleF(0, 0, img.Width, img.Height))
Button9.Backgrou­ndImage = img
End If

Díky všem

 
Odpovědět 30.8.2015 23:17
Avatar
Odpovídá na David Mlčoch
Michal Žůrek (misaz):

prosím vlož ten kód ještě jednou do těch značek pro zdrojový kód, takhle se to nedá číst. Je na to druhé tlačítko, hned vedle smajlíka.

Nahoru Odpovědět  +2 30.8.2015 23:48
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Mlčoch
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
David Mlčoch:
Dim cDialog As New ColorDialog()
cDialog.Color = Button7.BackColor ' initial selection is current color.
If (cDialog.ShowDialog() = DialogResult.OK) Then
Button7.BackColor = cDialog.Color
Dim img As New Bitmap(Button9.Width, Button9.Height)
Dim brush As New Drawing.Drawing2D.LinearGradientBrush(New PointF(0, 0), New PointF(Button9.Width, Button9.Height), Button7.BackColor, Button1.BackColor)
Dim gr As Graphics = Graphics.FromImage(img)
gr.FillRectangle(brush, New RectangleF(0, 0, img.Width, img.Height))
Button9.BackgroundImage = img
End If

Omlouvám se

 
Nahoru Odpovědět 30.8.2015 23:55
Avatar
Odpovídá na David Mlčoch
Michal Žůrek (misaz):

obrátit směr gradientu můžeš třeba jednoduše tak že prohodíš barvy, že. Nevím do jaké míry to umožňuje třeba tříbarevný gradient - tříbarevným bys vyřešil gradient od středu (barva1;barva2;bar­va1).

Nahoru Odpovědět  +1 30.8.2015 23:57
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Mlčoch
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
David Mlčoch:

A jak vyřeším dvojbarevný gradient od středu?

 
Nahoru Odpovědět 31.8.2015 0:03
Avatar
David Mlčoch
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
David Mlčoch:

Jenže při zadání těchto hodnot, je přechod z HORNÍHO LÉVÉHO ROHU do SPODNÍHO PRAVÉHO ROHU, jenže já chci přechod zleva středu - doprava na střed

 
Nahoru Odpovědět 31.8.2015 0:06
Avatar
David Hanina
Člen
Avatar
Odpovídá na David Mlčoch
David Hanina:

Je to jen matematika

Dim brush As New Drawing.Drawing2D.LinearGradientBrush(New PointF(0, 0), New PointF(Button9.Width, Button9.Height), Button7.BackColor, Button1.BackColor)

abys byl v levém středu tak ti stačí jen přepsat první bod z 0,0 na 0,Button9.Height/2 a to stejné i u druhého jen x posuneš o šířku tlačítka.

Editováno 31.8.2015 8:25
 
Nahoru Odpovědět 31.8.2015 8:24
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na David Mlčoch
patrik.valkovic:

Promiň ale na takové otázky už nemá cenu odpovídat. Každý druhý den tady vidím nějaký tvůj příspěvek na téma WPF/WF a to ještě stylem "uděljte mi". Evidentně ani nemáš ponětí, co tvůj kód dělá. Potom je jasné, že nevíš co s ním. Už od pohledu vidím, že přechod je určený body - stačí tedy změnit souřadnice bodů.
Pokud to nezvládáš, dej si nižší laťku a dělej něco menšího, nebo si technologii, se kterou máš v plánu pracovat, nastuduj, ale odmítám každý druhý den odpovídat na triviální otázky, které lze s trochou inteligence a Googlu vyřešit za pár sekund.

Nahoru Odpovědět 31.8.2015 8:31
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.