Soru & Cevap

C# ta ayarlar nasıl yapılandrırılır

24.04.2020 - 04:57

Ben uygulamama karanlık mod yerleştireceğim. İki tane form oluşturdum. Birisi açık tema, birisi karanlık tema. Kullanıcının ayarlardan hangi modu istediğini seçmesini ve o ayarın uygulama bir daha açıldığında o ayara göre form başlatmasını istiyorum. Nasıl yapabilirim?

15 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user f.erenyucal
f.erenyucal
17.02.2023 - 11:04

Merhaba İsmail, 

C# uygulamanızda, ayarları yapılandırmak için Properties.Settings sınıfını kullanabilirsiniz. Bu sınıf, uygulamanın ayarlarını app.config dosyasına kaydeder ve ApplicationSettingsBase sınıfından miras alır

İlk önce, uygulamanızın app.config dosyasına bir ayar ekleyin. Bu örnekte, ayarınızın adı Theme olsun ve varsayılan değeri "Light" olsun

 

<configuration>
  <applicationSettings>
    <MyApp.Properties.Settings>
      <setting name="Theme" serializeAs="String">
        <value>Light</value>
      </setting>
    </MyApp.Properties.Settings>
  </applicationSettings>
</configuration>

 

Daha sonra, ayarlarınızı kodunuzda kullanmak için Properties.Settings.Default öğesini kullanın. Ayarlarınızı okumak ve yazmak için GetSettingValue ve SetSettingValue gibi yardımcı yöntemler de oluşturabilirsiniz

 

using System.Configuration;

public static class SettingsManager
{
    public static string GetTheme()
    {
        return Properties.Settings.Default.Theme;
    }

    public static void SetTheme(string theme)
    {
        Properties.Settings.Default.Theme = theme;
        Properties.Settings.Default.Save();
    }
}

 

Ayrıca, uygulamanızı başlatırken, kaydedilmiş tema ayarını okuyun ve uygulamanın başlangıcında doğru formu açmak için bir kontrol yapın. Aşağıdaki gibi bir kod bloğu, uygulamanın başlangıcında doğru formu açacaktır:

 

using System.Windows.Forms;

static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        // check the saved theme setting and load the appropriate form
        if (SettingsManager.GetTheme() == "Light")
        {
            Application.Run(new LightForm());
        }
        else
        {
            Application.Run(new DarkForm());
        }
    }
}

 

Son olarak, kullanıcının tema tercihini kaydeden bir ayarlar penceresi oluşturmanız gerekiyor. Bu pencere, kullanıcının tercihini değiştirmesine ve ayarların kaydedilmesine izin vermelidir. Bu pencereyi oluşturmak için, bir Form oluşturun ve uygun kontrolleri ekleyin (örneğin, bir RadioButton veya bir ComboBox). Ayarları kaydetmek için, SettingsManager.SetTheme() yöntemini çağırın

 

Teşekkürler