Avatar
Dejvos
Člen
Avatar
Dejvos:

Ahoj, tak teď mám zase problém s tím že chci vykreslit string což je jednoduchý ale potřebuju se trefit "přesně"(alespoň přibližně) na center obrazovky ale musíme brát v potaz velikost fontu a počet písmen..Pořád se mi to moc nedaří vypočítat a tak se chci zeptat jestli se na to nedá použít nějaká fce.
Můj "pokus":

px1 = (this.Width / 2) - (((velf/10)*(9-s2.Length)) * s2.Length);

kde:px1=x.sou­řadnice...vel­f=velikost fontu...s2=text
Moc dík za odpovědi. Doufám že to bude jednoduchý a nebudu na to vymýšlet nějaký závislosti.. :D

Odpovědět 24.3.2014 20:38
Neodsuzuj někoho za to co něco neumí, ale uznávej ho za to co umí.Čest nade vše.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Dejvos
Petr Nymsa:

Použij WPF a v XAML nastavíš horizontal alignment. Resp. prvku (objektu) nastavíš Alignment jaké požaduješ

Editováno 24.3.2014 20:52
Nahoru Odpovědět 24.3.2014 20:52
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Dejvos
Člen
Avatar
Odpovídá na Petr Nymsa
Dejvos:

A ve WinForms se to udělat nedá?

Nahoru Odpovědět 24.3.2014 20:54
Neodsuzuj někoho za to co něco neumí, ale uznávej ho za to co umí.Čest nade vše.
Avatar
Odpovídá na Dejvos
Andrej Farkaš:

Radšej by si sa mal venovať WPF ;-) Ale ak to musí byť vo WinForms, vyskúšaj toto:
http://stackoverflow.com/…net-winforms
Alebo toto:
http://stackoverflow.com/…-in-winforms

Editováno 24.3.2014 21:07
Nahoru Odpovědět 24.3.2014 21:06
Live. Love. Learn.
Avatar
Dejvos
Člen
Avatar
Odpovídá na Andrej Farkaš
Dejvos:

A proč je lepší se teda věnovat WPF? Jinak odkazy směřují k tomu že tázající zná šířku textu ale tu já neznám a dělám to přes

e.DrawString(......);

takže tam není kontrolka jako Label.

Nahoru Odpovědět 24.3.2014 21:24
Neodsuzuj někoho za to co něco neumí, ale uznávej ho za to co umí.Čest nade vše.
Avatar
Dejvos
Člen
Avatar
Dejvos:

No dpc já se učím WF a teď zase WPF..proč není jen jeden prog. jazyk na všechno.. :D

Nahoru Odpovědět 24.3.2014 21:39
Neodsuzuj někoho za to co něco neumí, ale uznávej ho za to co umí.Čest nade vše.
Avatar
rwn
Člen
Avatar
rwn:

Náhodou jsem něco podobného kdysi dávno dělal ve WF, napsal jsem si tehdy na to jednoduchou metodu metodu..

private readonly Font fontTextu = new Font("Arial", 8);
private Brush barvaText = new SolidBrush(Color.Black);

public void vycentrujText(PictureBox pictureBox, string text, Graphics g)
{
    SizeF textSize = g.MeasureString(text, fontTextu);
    g.DrawString(text, fontTextu, barvaText, (pictureBox.Width - textSize.Width) / 2, (pictureBox.Height - textSize.Height) / 2);
}

Snad je to uchopitelné. :)

Editováno 24.3.2014 21:42
Nahoru Odpovědět  +3 24.3.2014 21:40
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
rwn
Člen
Avatar
Odpovídá na Dejvos
rwn:

Však to není jiný jazyk, jen rozhraní. Když se člověk naučí nějaké programovací zvyklosti a začne mít už nějaké návyky, tak můžu bez problému intuitivně programovat i v něčem co nezná.

Nahoru Odpovědět 24.3.2014 21:52
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Dejvos
Člen
Avatar
Odpovídá na rwn
Dejvos:

Jo dík nevěděl jsem o tom že se dá takhle jednoduše zjistit šířka textu :D Už to přibližně funguje ;-)

Nahoru Odpovědět 25.3.2014 17:37
Neodsuzuj někoho za to co něco neumí, ale uznávej ho za to co umí.Čest nade vše.
Avatar
Eldan
Člen
Avatar
Eldan:

Ve WinForms je to jednoduché. Nastav si TextAlign na MiddleCenter, AutoSize na False a nastav tomu stejnou šířku jako má Form.

Nahoru Odpovědět 25.3.2014 20:25
Unobfuscated executable == free source code
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.