Index v Labelu?   zodpovězená otázka

VB.NET, WinForms

Chtěl jsem se zeptat, zda lze v Labelu psat s indexama. Zatim to řeším tak, že dám dva Labely pod sebe a u toho dolniho zmenším písmo. Ovšem tento způsob se mi zdá poněkud nešťastný.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nelze, Label podporuje jen základní rendering textu, ale bude záležitostí na pár minut dědit z Labelu a vykreslování si napsat sám s tím, že si např. před indexem vložíte speciální znak, který bude indikovat index.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nebyl bych si úplně jistý, jestli je to záležitost na pár minut. Kompletně přepsat vykreslování labelu včetně zalamování textu atp nepatří mezi nejsnadnější úlohy.

Možná bych se přiklonil k vlastnímu ovládacímu prvku složeného ze 2 labelů (jeden menší). To bude určitě o něco jednoduší.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pravda, na to jsem nepomyslel, na zalamovaný text používám častěji RTB nebo WebBrowser...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, RichTextBox by bylo schůdnější řešení, které formátování textu podporuje již ze základu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No, nejlepší řešení by bylo speciálně pro tento účel si napsat vlastní komponentu, které předáte nějakou textovou hodnotu se značkami a ona text podle toho vykreslí, nemělo by to být tak těžké.

Třeba předáte H\d2\sO anebo m\h3, přičemž \d říká, že následující text bude dolním indexem, \h značí, že následující text bude horním indexem, a \s vrátí vše na standardní nastavení. Ještě by to mohlo umět tučný text a kurzívu atd., prostě takové zjednodušené RTF. Dá se na to použít RichTextBox, ale v některých případech je to zase kanón na vrabce.

Zalamování textu podporuje už v základu GDI+, takže s tím by neměl být až takový problém. Ono GDI+ co se týče renderování textu má vůbec mnoho hezkých vlastností.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback