Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Vycentrování C#

C# .NET .NET (C# a Visual Basic) Vycentrování C# American English version English version

Aktivity (1)
Avatar
Šeryx
Člen
Avatar
Šeryx:24.3.2014 20:38

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í....
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Šeryx
Petr Nymsa:24.3.2014 20:52

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
Šeryx
Člen
Avatar
Odpovídá na Petr Nymsa
Šeryx:24.3.2014 20:54

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í....
Avatar
Odpovídá na Šeryx
Andrej Farkaš:24.3.2014 21:06

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
Nahoru Odpovědět 24.3.2014 21:22
Live. Love. Learn.
Avatar
Šeryx
Člen
Avatar
Odpovídá na Andrej Farkaš
Šeryx:24.3.2014 21:24

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í....
Avatar
Nahoru Odpovědět 24.3.2014 21:34
Live. Love. Learn.
Avatar
Šeryx
Člen
Avatar
Šeryx:24.3.2014 21:39

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í....
Avatar
rwn
Člen
Avatar
rwn:24.3.2014 21:40

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 Šeryx
rwn:24.3.2014 21:52

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
Šeryx
Člen
Avatar
Odpovídá na rwn
Šeryx:25.3.2014 17:37

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í....
Avatar
Eldan
Člen
Avatar
Eldan:25.3.2014 20:25

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.