c# form tema değiştirme custom png

arwinstar

Gold Üye
Katılım
24 Mar 2023
Mesajlar
185
Beğeniler
31
İletişim
c# formda bir resim seçilince form1 den form 13 e kadar hepsine aynı backround image uygulanacak ve resimi kişi kendisi custom olarak seçebilecek, bu sistemi nasıl yapabilirim
 
Bu kullanıcıyla herhangi bir iş veya ticaret yapmak istiyorsanız, forumdan uzaklaştırıldığını sakın unutmayın.
C#:
// Form1.cs

public partial class Form1 : Form
{
    public static Image BackgroundImage; // Uygulama boyunca kullanılacak arka plan resmi

    private void selectImageButton_Click(object sender, EventArgs e)
    {
        using (OpenFileDialog openFileDialog = new OpenFileDialog())
        {
            openFileDialog.Filter = "Image Files (*.bmp;*.jpg;*.jpeg,*.png)|*.BMP;*.JPG;*.JPEG;*.PNG";
            openFileDialog.Title = "Select an Image";

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                BackgroundImage = Image.FromFile(openFileDialog.FileName);

                // Arka plan resmini diğer formlara da uygulamak için
                // Application.OpenForms ile tüm açık formların üzerinde dolaşabilirsiniz.
                foreach (Form form in Application.OpenForms)
                {
                    form.BackgroundImage = BackgroundImage;
                }
            }
        }
    }
}
 
C#:
// Form1.cs

public partial class Form1 : Form
{
    public static Image BackgroundImage; // Uygulama boyunca kullanılacak arka plan resmi

    private void selectImageButton_Click(object sender, EventArgs e)
    {
        using (OpenFileDialog openFileDialog = new OpenFileDialog())
        {
            openFileDialog.Filter = "Image Files (*.bmp;*.jpg;*.jpeg,*.png)|*.BMP;*.JPG;*.JPEG;*.PNG";
            openFileDialog.Title = "Select an Image";

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                BackgroundImage = Image.FromFile(openFileDialog.FileName);

                // Arka plan resmini diğer formlara da uygulamak için
                // Application.OpenForms ile tüm açık formların üzerinde dolaşabilirsiniz.
                foreach (Form form in Application.OpenForms)
                {
                    form.BackgroundImage = BackgroundImage;
                }
            }
        }
    }
}
diğer formlarda örn form12 de nasıl dolaştırabileceğimide yazarsan çok yardımcı olmuş olursun kral
 
ChatGPT bu şekilde göstermekte belki işine yarayabilir ?

İlk olarak, bir resim seçmek için OpenFileDialog nesnesini kullanarak kullanıcının bir resim seçmesini sağlayabilirsiniz. Ardından, seçilen resmi bir Bitmap nesnesi olarak yüklemeli ve diğer formlara geçiş yaparken bu Bitmap nesnesini kullanarak arka plan resmini ayarlamalısınız.

İlk adım olarak, OpenFileDialog nesnesini kullanarak kullanıcının bir resim seçmesini sağlayabilirsiniz. Örneğin, bir buton tıklatıldığında bir dosya seçme iletişim kutusu açmak için aşağıdaki kodu kullanabilirsiniz:

C#:
private void button1_Click(object sender, EventArgs e)

{

    OpenFileDialog openFileDialog1 = new OpenFileDialog();

    

    openFileDialog1.Filter = "Resim Dosyaları |*.jpg; *.jpeg; *.png;";

    openFileDialog1.Title = "Bir resim seçin";

    

    if (openFileDialog1.ShowDialog() == DialogResult.OK)

    {

        string resimYolu = openFileDialog1.FileName;



        // Resim seçildiğinde yapılacak işlemler

    }

}

Bu kod, kullanıcının sadece JPG, JPEG veya PNG dosya biçimlerindeki resim dosyalarını seçmesine izin verecektir.

Ardından, seçilen resmi bir Bitmap nesnesi olarak yükleyebilirsiniz. Aşağıdaki kod, bir resim dosyasını yükleyip bir Bitmap nesnesine dönüştürür:

C#:
string resimYolu = // OpenFileDialog nesnesi ile alınan resim yolunu alın
    
Bitmap arkaPlanResmi = new Bitmap(resimYolu);

Ve son olarak, diğer formlardaki background resmini değiştirmek için her forma ait Load olayını kullanabilirsiniz. Aşağıdaki kod örneği, Form1'den Form13'e kadar tüm formların backround resmini değiştirmek için kullanılabilir:

C#:
private void Form_Load(object sender, EventArgs e)

{

    // Seçilen resmin yolunu alın

    string resimYolu = // OpenFileDialog nesnesi ile alınan resim yolunu alın

    

    // Resmi bir Bitmap olarak yükleyin

    Bitmap arkaPlanResmi = new Bitmap(resimYolu);

    

    // Form arka plan resmini ayarlayın

    this.BackgroundImage = arkaPlanResmi;

}

Yukarıdaki kod, her bir formun Load olayına aynı kodu eklemeniz gerektiğinden, tüm formlara kopyalamanız gerekmektedir. Bu, tekrar eden kod yazmak yerine daha ölçeklenebilir bir yaklaşım izlemek için bir genişletme yöntemi kullanarak düzenlenebilir. Aşağıdaki kod, Form nesnelerinin arka plan resmini ayarlamak için bir genişletme yöntemidir:

C#:
public static class FormExtensions

{

    public static void SetBackgroundImage(this Form form, string imageUrl)

    {

        Bitmap arkaPlanResmi = new Bitmap(imageUrl);

        form.BackgroundImage = arkaPlanResmi;

    }

}

Yukarıdaki kodu projenize ekledikten sonra, artık her bir form için sadece aşağıdaki gibi genişletme yöntemini çağırarak arka plan resmini ayarlayabilirsiniz:

C#:
this.SetBackgroundImage(resimYolu);

Burada "this" anahtar kelimesi, genişletin yönteminin çağrıldığı formu ifade eder. Bu şekilde, herhangi bir Form nesnesi üzerinde SetBackgroundImage() yöntemi çağrılabilir.
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt