• 21-10-2024, 20:33:20
    #1
    Merhabalar ben bir barkod yazılımı geliştirdim ve bitirdim program'ı 1920x1080 pc de yaptım winform uygulaması program otomatik maximized başlıyor fakat mesela 1600x900 bir ekranda çalıştırmam lazım ekran'a büyük geliyor büyütmesine rağmen. Ekranın sağındaki butonlar v.s ekranın dışına taşıyor bunları her ekrana otomatik şekilde boyulanıcak şekilde nasıl ayarlarım? Yani 1920x1080 bir ekranda çalışan program 1320 ekranda da görünüm olarak aynı dursun tam ekran yapınca. Butonlar textboxlar v.s büyük kalmasın istiyorum lütfen çok acil yardımcı olurmusunuz
  • 21-10-2024, 20:39:59
    #2
    Bu yardımcı olacaktır :

    this.AutoScaleMode = AutoScaleMode.Dpi;

    Eğer işe yaramazsa aşağıdaki kodu uygulayabilirsin :

    private void Form1_Load(object sender, EventArgs e)
    {
        // Ekranın çözünürlüğünü al
        int screenWidth = Screen.PrimaryScreen.Bounds.Width;
        int screenHeight = Screen.PrimaryScreen.Bounds.Height;
    
        // Orijinal çözünürlüğe göre ölçek faktörünü hesapla
        float widthRatio = (float)screenWidth / 1920;
        float heightRatio = (float)screenHeight / 1080;
    
        // Tüm kontrolleri ölçekle
        foreach (Control control in this.Controls)
        {
            control.Width = (int)(control.Width * widthRatio);
            control.Height = (int)(control.Height * heightRatio);
            control.Left = (int)(control.Left * widthRatio);
            control.Top = (int)(control.Top * heightRatio);
    
            // Eğer kontrolün fontu varsa, onu da ölçekle
            control.Font = new Font(control.Font.FontFamily, control.Font.Size * Math.Min(widthRatio, heightRatio), control.Font.Style);
        }
    }
  • 21-10-2024, 20:51:59
    #3
    CptSLap adlı üyeden alıntı: mesajı görüntüle
    Bu yardımcı olacaktır :

    this.AutoScaleMode = AutoScaleMode.Dpi;

    Eğer işe yaramazsa aşağıdaki kodu uygulayabilirsin :

    private void Form1_Load(object sender, EventArgs e)
    {
        // Ekranın çözünürlüğünü al
        int screenWidth = Screen.PrimaryScreen.Bounds.Width;
        int screenHeight = Screen.PrimaryScreen.Bounds.Height;
    
        // Orijinal çözünürlüğe göre ölçek faktörünü hesapla
        float widthRatio = (float)screenWidth / 1920;
        float heightRatio = (float)screenHeight / 1080;
    
        // Tüm kontrolleri ölçekle
        foreach (Control control in this.Controls)
        {
            control.Width = (int)(control.Width * widthRatio);
            control.Height = (int)(control.Height * heightRatio);
            control.Left = (int)(control.Left * widthRatio);
            control.Top = (int)(control.Top * heightRatio);
    
            // Eğer kontrolün fontu varsa, onu da ölçekle
            control.Font = new Font(control.Font.FontFamily, control.Font.Size * Math.Min(widthRatio, heightRatio), control.Font.Style);
        }
    }
    Hocam çooooook teşekkür ederim aslında sorunu çözdüm konuyu düzenlemeey gelmiştim birazcık aşağı almam gerekiyordu ama sizin kod daha iyi şekilde oturmasına yardımcı oldu çok sağolun R10+ verdim
  • 21-10-2024, 20:52:36
    #4
    PikkyMedya adlı üyeden alıntı: mesajı görüntüle
    Hocam çooooook teşekkür ederim aslında sorunu çözdüm konuyu düzenlemeey gelmiştim birazcık aşağı almam gerekiyordu ama sizin kod daha iyi şekilde oturmasına yardımcı oldu çok sağolun R10+ verdim
    Rica ederim