none
PictureBox Ortalama RRS feed

  • Soru

  • Öncelikle kolay gelsin arkadaşlar.
    Pictureboxı form boyutuna göre en alta ortalamak istiyorum fakat bir kaç yol denememe rağmen ortalanmıyor. sola kayıyor.

    Kod olarak; pictureBox1.Left = (frm.Width - pictureBox1.Width) / 2;

    Denediğim yollardan biri bu diğeri ise propertiesden Anchor özelliği.

    Önerilerinizi bekliyorum.Yardımlarınız için şimdiden teşekkürler.

    12 Kasım 2013 Salı 12:29

Yanıtlar

  • Malesef yine sağa kayık halde geldi.
           pictureBox1.Left = this.Width / 2 - pictureBox1.Width/2;
            pictureBox1.Top = this.Height / 2 - pictureBox1.Height/2;
    Dikkat etmemişim. Event formun shown eventi olmalı.

    13 Kasım 2013 Çarşamba 09:16
    Moderatör

Tüm Yanıtlar

  • Merhabalar doğru yolda ilerliyorsunuz ama kullandığınız event yanlış

    Formun Resize event ine aşağıdaki kodu yazınız.

    Tam kod

    private void Form1_Resize(object sender, EventArgs e)
    {
        pictureBox1.Left = (frm1.ActiveForm.Width - pictureBox1.Width) / 2;
    }

    Kolay gelsin.


    Yunus Emre ALTINAY



    12 Kasım 2013 Salı 20:16
  • Form Loadda yapıyorum fakat olmuyor. Formun boyutunu ise ekran çözünürlük ve genişliğne göre tam ekran yaptırıyorum. Denedim ancak forumun içerisindeki picturebox yinede ortalanmıyor.
    13 Kasım 2013 Çarşamba 07:58
  • Form load'da değil, shown eventinde kullanın kodu.

            pictureBox1.Left = this.Width / 2 - pictureBox1.Width;
            pictureBox1.Top = this.Height / 2 - pictureBox1.Height;

    13 Kasım 2013 Çarşamba 08:08
    Moderatör
  • Malesef yine sağa kayık halde geldi.
    13 Kasım 2013 Çarşamba 08:33
  • Önce ekran çözünürlüğünün en boyutunun yarısını alacaksın:

    int cozunurlukEni = this.Width / 2;

    Sonra göstereceğin pictureboxın en boyutunun yarısını alacaksın:

    int resimKutusuEni = pictureBox1.Width / 2;

    Çözünürlüğünüz 1024 piksel ise yarısı 512. pikseldir. Resim göstereceğiniz picturebox 300 piksel ise yarısı 150 i pikseldir. 512 pikselden 150 çıkartınca 362.piksel ise picturebox'ın sol kenar başlangıcı olur:

    pictureBox1.Left = cozunurlukEni - resimKutusuEni;

    Aynı mantığı yükseklik için yapacaksın. Nihayetinde:

    int cozunurlukEni = this.Width / 2; int resimKutusuEni = pictureBox1.Width / 2; pictureBox1.Left = cozunurlukEni - resimKutusuEni;

    int cozunurlukYukseklik = this.Height / 2
    int resimKutusuYukseklik = pictureBox1.Height / 2;
    pictureBox1.Top = cozunurlukYukseklik - resimKutusuYukseklik;






    13 Kasım 2013 Çarşamba 09:03
  • Yine olmadı. Sola kayık geliyor yine.
    13 Kasım 2013 Çarşamba 09:14
  • Malesef yine sağa kayık halde geldi.
           pictureBox1.Left = this.Width / 2 - pictureBox1.Width/2;
            pictureBox1.Top = this.Height / 2 - pictureBox1.Height/2;
    Dikkat etmemişim. Event formun shown eventi olmalı.

    13 Kasım 2013 Çarşamba 09:16
    Moderatör