C# ile Saydamlaşan Yazı Yapma | RGB Kodları ile

Merhaba arkadaşlar, bugün yeni bir makale ile karşınızdayım. Web sayfalarında Jquery ile yapılan saydamlaşan yazılar herkesin oldukça ilgisini çekmekte. Bende bu yüzden neden C# Form tasarımlarında da böyle birşey olmasın diye düşündüm ve hemen işe koyuldum. Uzun uğraşlar sonucu yapabildim ve siz değerli blog takipçilerimle paylaşmak istedim. Mantığı ise çok basit sadece label’imizin rengini RGB kodları ile değiştiriyoruz.

İlk önce birkaç önemli bilgiyi vermekte yarar var. Rgb kodlarında siyah ve beyaz tonları kullandık buda demek oluyorki toplam 101 adet renk kodu var ama bu kodlar ikili ve üçerli olarak artmakta. Yani şöyle mesela siyahın Rgb renk kodu ; ” 0,0,0 “. Siyahın bir açık renginin renk kodu ise ; ” 3,3,3 ” . Bir önceki renginden açık rengi ise ; ” 5,5,5 “. Yani gördüğünüz gibi ilk önce üç sonra ikili şekilde arttı. Bu böyle devam ediyor. Kodlarımızı da ona göre yazmak zorundayız. İlk başta karışık gelebilir mantığını çözdükten sonra çok kolay gelecektir sizlere de.

Aşağıda RGB tablosunun ufak bir kısmı var. Resmin en solundaki ilk 3 sütundaki kodlar RGB kodlarıdır. Gördüğünüz gibi ikişerli ve üçerli olarak artıyor.

Formumuzda ;
1 Adet Label
2 Adet Button
2 Adet timer kullanacağız. İki timer’ında Properties’den Invertal değerini 10 vermemiz gerek.

string arttirmaSayisi = "3"; //Rgb kodlarında ilk olarak artış üç olduğu için değişkenin değerini üç olarak veriyoruz.
int Argb1 = 0, Argb2 = 0, Argb3 = 0; //Yazıyı saydamlaştırırken kullanacağımız değişkenler. Saydamlaştırırken Siyahdan beyaza gideceğimiz için değişkenlere sıfır değeri vermeliyiz.
int Brgb1 = 253, Brgb2 = 253, Brgb3 = 253; //Yazıyı eski haline getirirken kullanacağımız değişkenler. Yazıyı eski haline getirirken beyazdan siyaha geleceğimiz için değişkenlere 253 değerlerini veriyoruz. Ayrıca rgb kodlarında tam beyazın rgb kodu 253 olduğundan dolayı bu değeri veriyoruz.
int say1 = 0; // Saydamlaştırırken kullanacağımız sayaç.
int say2 = 101; // Eski haline getirirken kullanacağımız sayaç. Siyah Beyaz veya beyaz siyah arası toplam 101 adet rgb kodu bulunmakta. O yüzden 101 değerini verdik.

Yazıyı saydamlaştır butonumuzun kodları aşağıdaki gibidir.

private void YaziSaydamlastirButton_Click(object sender, EventArgs e)
 {
  YaziSaydamlastirButton.Enabled = false;
  EskiHalineGetirButton.Enabled = false;
  //Butonları pasif yapıyoruz ki saydamlaştırma işlemi bitmeden butona basılırsa programımız hata vermesin.
  SaydamlastirTimer.Start(); //SaydamlastirTimeri aktif hale getiriyoruz.
 }

Yazıyı eski haline getir butonumuzun kodları aşağıdaki gibidir.

private void EskiHalineGetirButton_Click(object sender, EventArgs e)
  {
   YaziSaydamlastirButton.Enabled = false;
   EskiHalineGetirButton.Enabled = false;
    //Butonları pasif yapıyoruz ki saydamlaştırma işlemi bitmeden butona basılırsa programımız hata vermesin.
   EskiHalineGetirTimer.Start(); //EskiHalineGetirTimeri aktif hale getiriyoruz.
  }
private void SaydamlastirTimer_Tick(object sender, EventArgs e)
        {
            if (say1 != 101) //Bu kısmı yukarıda değişken tanımlarken açıklamıştık.
            {
                if (arttirmaSayisi == "3") //Arttırma sayısını kontrol ediyoruz.
                {
                    label1.ForeColor = Color.FromArgb(Argb1, Argb2, Argb3); //Yazımızın renklerini bu şekilde değiştiriyoruz.
                    Argb1 = Argb1 + 3;
                    Argb2 = Argb2 + 3;
                    Argb3 = Argb3 + 3;
                    //Yukarıda ise RGB kodlarının değerlerini arttırıyoruz ki yazımız saydamlaşsın. Ama burada üç üç arttırıyoruz çünkü arttirmaSayisi değişkeni üç.
                    arttirmaSayisi = "2"; //RGB kodları ilk üç sonra iki iki artar. O yüzden arttirmaSayisini değiştiriyoruz ve iki olarak değer veriyoruz ki bir sonrakinda alt kısma geçip iki iki arttırsın.
                    say1++; //Sayaçımızı arttırıyoruz.
                    if (say1 == 101) //Bildiğiniz gibi toplam Siyah beyaza arası 101 adet RGB kodu var. Burada eğer sayaç yani say1 101 olmuşsa tüm değerleri if bloğunun altında eski haline getiriyoruz.
                    {
                        Argb1 = 0;
                        Argb2 = 0;
                        Argb3 = 0;
                        EskiHalineGetirButton.Enabled = true;
                        YaziSaydamlastirButton.Enabled = false;
                        arttirmaSayisi = "3";
                        say1 = 0;
                        SaydamlastirTimer.Stop();
                    }
                }
                else if (arttirmaSayisi == "2") //Eğer arttırma sayısı iki olmuş ise bu if bloğu dönecektir. Aşağıdaki terimleri tek tek açıklamıyorum yukarıda ki ile aynı tek farkı yukarıda üç üç artıyor burada iki iki.
                {
                    label1.ForeColor = Color.FromArgb(Argb1, Argb2, Argb3);
                    Argb1 = Argb1 + 2;
                    Argb2 = Argb2 + 2;
                    Argb3 = Argb3 + 2;
                    arttirmaSayisi = "3";
                    say1++;
                    if (say1 == 101) //Yukarıda olduğu gibi buradada sayacı kontrol ediyoruz.
                    {
                        Argb1 = 0;
                        Argb2 = 0;
                        Argb3 = 0;
                        EskiHalineGetirButton.Enabled = true;
                        YaziSaydamlastirButton.Enabled = false;
                        arttirmaSayisi = "3";
                        say1 = 0;
                        SaydamlastirTimer.Stop();
                    }
                }
            }
        }

Aşağıdaki kodlarda bir önceki verdiğim kodlar ile hemen hemen aynıdır. Yukarıda şeffaf hale getirirken burada ise eski haline getiriyoruz. Bu kodlarda ise rgb kodlarını azaltıyoruz ki yazı yavaş yavaş siyah hale gelsin.

        private void EskiHalineGetirTimer_Tick(object sender, EventArgs e)
        {
            if (say2 != 0)
            {
                if (arttirmaSayisi == "3")
                {
                    label1.ForeColor = Color.FromArgb(Brgb1, Brgb2, Brgb3);
                    Brgb1 = Brgb1 - 3;
                    Brgb2 = Brgb2 - 3;
                    Brgb3 = Brgb3 - 3;
                    arttirmaSayisi = "2";
                    say2--;
                    if (say2 == 0)
                    {
                        Brgb1 = 253;
                        Brgb2 = 253;
                        Brgb3 = 253;
                        EskiHalineGetirButton.Enabled = false;
                        YaziSaydamlastirButton.Enabled = true;
                        arttirmaSayisi = "3";
                        say2 = 101;
                        EskiHalineGetirTimer.Stop();
                    }
                }
                else if (arttirmaSayisi == "2")
                {
                    label1.ForeColor = Color.FromArgb(Brgb1, Brgb2, Brgb3);
                    Brgb1 = Brgb1 - 2;
                    Brgb2 = Brgb2 - 2;
                    Brgb3 = Brgb3 - 2;
                    arttirmaSayisi = "3";
                    say2--;
                    if (say2 == 0)
                    {
                        Brgb1 = 253;
                        Brgb2 = 253;
                        Brgb3 = 253;
                        EskiHalineGetirButton.Enabled = false;
                        YaziSaydamlastirButton.Enabled = true;
                        arttirmaSayisi = "3";
                        say2 = 101;
                        EskiHalineGetirTimer.Stop();
                    }
                }
            }
        }
C#
C# ile Saydamlasan Yazı
İndirilme : 164 | Dosya Tipi : rar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.