C# Renk Geçişi
-
selam hocalar, bir form uygulamasında aşağıdaki resimdeki gibi kare şeklinin rengini griden beyaza doğru yavaş yavaş geçirmek istiyorum. geçişler keskin olmayacak yani bi timer koyupta direk gri iken beyaz olsun istemiyorum.
yaklaşık 30 saniyede griden beyaza doğru gidicek. yani yavaş yavaş beyazlaşıcak. bunu c# ta nasıl yaparım ?
-
tonlama olarak gideceği için en kolayı hexadecimal olarak yapmaktır sanırım.
this.BackColor = System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
bu şekilde deneyebilirsin hocam.
-
bu şekilde çok sıkıntılı bu, geçişler çok fazla belirgin oluyor. neyse son haliyle tekrar bakıcam yapcak bişi yok. eyvallah hocam saolasın.
-
wpf kullanabilirsin. onunla istediğin tarzda renk geçişi uygulayabilirsin..
unbalanced tarafından 11/Ağu/12 10:29 tarihinde düzenlenmiştir
-
saolun beyler teşekkürler
-
arkadaş gradient istemiyor, sanırsam yavaş yavaş rengin değişmesini sitiyor
edit: hepsini okumamışm
wpfte ColorAnimation işini görücektir
http://msdn.microsoft.com/en-us/library/system.windows.media.animation.coloranimation.aspx
nessaj tarafından 11/Ağu/12 18:54 tarihinde düzenlenmiştir -
-
BarisYigit bunu yazdı
linke tıklayınca nod32 uyarı verdi hocam :)
wpf bayagı iyimiş yalnız nessajın verdiği link bayagı iyi.
-
solstice bunu yazdıBarisYigit bunu yazdı
linke tıklayınca nod32 uyarı verdi hocam :)
wpf bayagı iyimiş yalnız nessajın verdiği link bayagı iyi.
abi adam resmen döküman yazmış ama ben sana şöyle basit bir şey önereyim.
O müridin verdiği gradient deki resimlerden birini al yada kendin istediğin renk geçişi hazırla. sonra programla bu resimi çağırıp timer ın içinde sürekli bir sanraki pixel i okutarak renkdeğişim efekti uygulanacak picture a setpixelle yansıt. böylece istediğin animasyonu 1x100 gibi bir gradient le çok iyi oluşturabilirsin. bilmem anlatabildim mi ?
-
yva öyle kasıntı bi olay yok
<Window x:Class="renkşeettirici.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Window.Triggers> <EventTrigger RoutedEvent="Control.MouseDown"> <BeginStoryboard> <Storyboard> <ColorAnimation Storyboard.TargetProperty="Background.Color" From="White" AutoReverse="True" To="Black" Duration="0:0:1" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Window.Triggers> </Window>ahanda bu kod basılan kontrolün rengini siyaha 1 saniye içerisinde yumuşak bi şekilde geçirip tekrar beyaza döndürüyor
nessaj tarafından 19/Ağu/12 02:38 tarihinde düzenlenmiştir
bu kadar basit -
Hocam kırpışmayı engellemek istiyorsan doublebuffer yapmalısın ve çizdikçe invalidate() çağırmalısın
