Policzenie długości między marginesami w C#

0

Witam.
Prosta, trudna sprawa.

Napisałem taki genialny kod:

 int x = 5, dlugosc_okna = 0;

            dlugosc_okna = this.Width;

            MessageBox.Show(dlugosc_okna.ToString());

            string dlugosc = "";
            for (int i = 0; i < dlugosc_okna ; i++) dlugosc += " ";

                label1.Text = "MY TEXT : " + dlugosc + x.ToString();

W przypływie geniuszu postanowiłem wyliczyć długość okna. Ale to nic mi nie daje. Małe okno ma 603 px , duże 1453 px.

I tych spacji jest za dużo ...
A chcę mieć taki efekt: http://i.imgur.com/hMXFfWE.png aby linia rysowała się do pewnego momentu w oknie. Nie przez całe okno i za nie.
Nie zależnie od wielkości okna - więc zrobienie tego na stałe odpada.

Kwestia jak to wyliczyć teraz? Chyba wiem w czym problem ...
Wynik this.width to px a nie wartości stałe jak int x = 5.
Da się coś z tym zrobić?
Dla małego okna zrobiłem tak :```

      for (int i = 0; i < dlugosc_okna / 8 ; i++) dlugosc += " ";

I jest dobrze. Ale dla dużego nie jest. A jak wejdzie inna rozdzielczość ekranu to tragedia będzie znowu ...
Pomysły?

0

Jedna spacja to nie jest jeden pixel. A na początku masz jakiś tekst wiec pętla nie powinna iść od zera. Musialbys ewentualnie przeliczyć ile pieli ma spacja przy danej czcionkę

1 użytkowników online, w tym zalogowanych: 0, gości: 1