Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Neaktivní uživatel:8.7.2018 14:01

Chtěl jsem si udělat základní XML reader (zatím bez ukládání – prostě jenom naformátuje a zvýrazní). Zkoušel jsem to ve WPF a když jsem se konečně dostal k tomu vybarvení, zjistil jsem, že TextBox nestačí. Našel jsem ale jen rady na WF – doporučovaly RichTextBox. Ve WPF ale dělal něco úplně jiného <i>(tady je první otázka – jak souvisí RichTextBox ve WF a WPF)</i>, tak jsem to konečně přesunul do WF, kde jenom nescrolluje <i>(druhá otázka – jak docílit scrollování (ale zas ne samovolného))</i>.
Ještě poslední otázečka – je teda lepší používat WF, které jsou podporovanější, nebo WPF, což podporuje jistý David (a myslím, že on ví, který :-) )

<a href="https:/­/www.itnetwor­k.cz/dev-lighter/1078">W­PF</a>
<a href="https:/­/www.itnetwor­k.cz/dev-lighter/1079">W­F</a> Doufám, že nevadí forma designeru
Sorry za kvalitu kódu, pořád je ve vývoji :-)

Zkusil jsem: Hledat…

Chci docílit: Funkčního XML readeru

Odpovědět
8.7.2018 14:01
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Štěpánek:9.7.2018 9:44

Kde jsi přišel na ten nesmysl, že jsou WinForms podporovanější????? Je tomu právě naopak. WF pomalu, ale jistě umírá. WPF je oproti WF novější, je technologicky mnohem dále...

Nahoru Odpovědět
9.7.2018 9:44
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
Neaktivní uživatel:9.7.2018 10:06

Podívej se do ToolBoxu, na fóra, prostě to není tak strmá cesta, no. Ještě jsem v ten moment měl jakýsi další argument, ale já rád zapomínám :-).

Nahoru Odpovědět
9.7.2018 10:06
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Štěpánek:9.7.2018 10:15

Co uvidím v ToolBoxu? Tam jsou viditelné nástroje podle toho, kterou verzi .NET zvolíš. Všechno, co umí WF, umí WPF taky a ještě mnohé další. Jen u některých nástrojů je třeba trošku "pogůglit", protože ve WPF mohou fungovat trošku jinak než ve WF, nebo je mohly nahradit komponenty novější.
To, že se o WF diskutuje na fórech neznamená, že je podporovanější, ale to, že je v tom napsáno hodně aplikací, které je třeba nějakým způsobem udržovat. Nově vytvářené projekty (obzvláště ty větší) jsou již většinou ve WPF, protože vývojáři potřebují "vychytávky" a funkčnosti, kterými WF vzhledem ke své zastaralosti disponovat nemůže, nebo které jsou ve WF použitelné jen velmi složitým způsobem.

Editováno 9.7.2018 10:16
Nahoru Odpovědět
9.7.2018 10:15
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
Neaktivní uživatel:9.7.2018 10:44

Jen u některých nástrojů je třeba trošku "pogůglit", protože ve WPF mohou fungovat trošku jinak než ve WF, nebo je mohly nahradit komponenty novější.

Např. RichTextBox? :-) A nemáš, prosím tě, nějaké řešení? Celkem by bodlo.

Jo ještě pár dalších problémů:

  1. ve WF (protože WPF pořád nefunguje) se mi <b>některé</b> značky vykreslí i s ">", které mají mít jinou barvu. Pravděpodobně je to nějaká chyba v indexování <code>i</code> a <code>j</code>, ale zatím se mi to nepovedlo opravit.
  2. ve WPF se mi všechno (co se teda zobrazí) zobrazí po znaku na řádek (<code>MapTbx</co­de> pracuje normálně)
  3. v čem všem spočívá rychlost např. VScode? Pochybuju, že by to byly jenom vlákna.
Nahoru Odpovědět
9.7.2018 10:44
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Erik Šťastný:9.7.2018 10:54

Jakou má souvislost VScode s tím o čem se tu bavíte?

 
Nahoru Odpovědět
9.7.2018 10:54
Avatar
Odpovídá na Erik Šťastný
Neaktivní uživatel:9.7.2018 10:59

Dá se v něm otevřít a číst XML (ale neformátuje se) a prostě je rychlejší než ten můj reader nebo třeba poznámkový blok. Teoreticky bych mohl jako příklad uvést skoro cokoliv. A ano, asi to bude i C++, ale že by jen to…

Nahoru Odpovědět
9.7.2018 10:59
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Erik Šťastný:9.7.2018 11:02

VSCode je zrovna napsán v JS,HTML,CSS kódu běžící na jádru Chromia pokud vím. Takže v C++ to asi nebude :)

Jinak ve vykreslování grafiky jsou například zrovna WPF brutálně vepředu oproti WF.

Editováno 9.7.2018 11:03
 
Nahoru Odpovědět
9.7.2018 11:02
Avatar
Odpovídá na Erik Šťastný
Neaktivní uživatel:9.7.2018 11:06

Tak aspoň vím, v čem to je. A opravdu to není ničím jiným, než jazykem? Jako nějaké ty vymoženosti za ty roky vývoje chápu, ale museli mít i něco do začátku.

Nahoru Odpovědět
9.7.2018 11:06
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Erik Šťastný:9.7.2018 11:12

Myslíš teď konkrétně to WF a WPF? No pokud vím, tak ve WF je postavené tak, že vše kreslí CPU, kdežto WPF umí kreslit pomocí GPU.

Editováno 9.7.2018 11:13
 
Nahoru Odpovědět
9.7.2018 11:12
Avatar
Odpovídá na Erik Šťastný
Neaktivní uživatel:9.7.2018 11:15

Myslím všechny větší programy. O CPU a GPU jsem už kdesi četl. Asi někde v komentářích článku, co WF a WPF srovnával…

Nahoru Odpovědět
9.7.2018 11:15
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Erik Šťastný:9.7.2018 11:20

No tak hlavní věc ve výkonu GUI je asi delegování grafické práce na grafickou kartu, což je to co WF neumí.

 
Nahoru Odpovědět
9.7.2018 11:20
Avatar
Neaktivní uživatel:20.8.2018 17:53

Stále žádný nápad?

Pro nečtenáře zopakuju nezodpovězené otázky:

  1. Jak souvisí <code>RichTex­tBox</code> ve WF a WPF?
  2. Jak ve WF RichTextBoxu docílit možnosti scrollování (a tudíž zobrazení "skrytého" textu)?
  3. Ve WF se mi některé značky vykreslí i s ">", které mají mít jinou barvu. Pravděpodobně je to nějaká chyba v indexování <code>i</code> a <code>j</code>, ale zatím se mi to nepovedlo opravit. Co s tím?
  4. Jak docílit normálního zobrazení textu ve WPF RichTextBoxu (ne co znak, to řádek)?

Jinak Michal Štěpánek a Erik Šťastný díky za zodpovězení těch "trochu off-topic" otázek :-).

Btw. 3. a 4. otázka je ve skutečnosti 4. a 5.

Editováno 20.8.2018 17:54
Nahoru Odpovědět
20.8.2018 17:53
Neaktivní uživatelský účet
Avatar
krepsy3
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
krepsy3:20.8.2018 18:26
  1. Nijak, souvisí jen jejich funkce - možnost zobrazovat a editovat bohatě formátovaný text. Ve WF je takový text ve formátu RTF (Richly formatted text) či jako s objektem OLE (což už je dnes zastaralá technologie). Ve WPF je naopak ve formátu XAML.
  2. Mělo by to fungovat samo od sebe, protože výchozí hodnota vlastnosti ScrollBars je Both. Popř. tedy musíš změnit tuto vlastnost.
  3. nevím, nikdy jsem s WF RTBoxem pořádně nedělal. Zkus googlit.
  4. Protože neformátuješ text korektním způsobem. RTB ti pravděpodobně vkládá text do samostatného bloku. Pokud nevíš, jak přesně funguje formátování bohatě formátovaného textu v XAMLu, doporučuju ti pročíst si následující kapitolu wpf-tutorialu: https://www.wpf-tutorial.com/…ntroduction/
Nahoru Odpovědět
20.8.2018 18:26
Programátor je stroj k převodu kávy na kód.
Avatar
vosa53
Člen
Avatar
Odpovídá na Neaktivní uživatel
vosa53:20.8.2018 18:27

Jestli chceš udělat XML editor/jen highlighter, tak použij něco co zvýrazňuje na základě syntaxe, třeba AvalonEdit (pro WPF) je dobrý. Můžeš si tam i rovnou v xml souboru nastavit pravidla pro zvýrazňování a zvládne to klidně milion řádků a víc. RichTextBox se na tohle nehodí.

 
Nahoru Odpovědět
20.8.2018 18:27
Avatar
Odpovídá na krepsy3
Neaktivní uživatel:20.8.2018 19:37
  1. Asi si budu muset zvyknout, že MS dělá všechno jinak ve WF (i když ho používám jen minimálně) a WPF :-)
  2. To tam mám nastavené. Scrollbar se sice objeví, ale není schopný jakkoliv reagovat.

4. Zkusil jsem opsat kus kódu s danou funkcí <a href="https:/­/www.wpf-tutorial.com/rich-text-controls/how-to-creating-a-rich-text-editor/">odtud</a>, problém ale zůstal.
Opsaná část:

FileStream fs = new FileStream(dlg.FileName, FileMode.Open);
TextRange range = new TextRange(CodeTbx.Document.ContentStart, CodeTbx.Document.ContentEnd);
range.Load(fs, DataFormats.Rtf);

//EDIT: DataFormats jsem zkoušel různé, některé mi soubor odmítaly otevřít

Editováno 20.8.2018 19:39
Nahoru Odpovědět
20.8.2018 19:37
Neaktivní uživatelský účet
Avatar
krepsy3
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
krepsy3:21.8.2018 0:42

To totiž dost záleží, jaký ten soubor je. A jak jsem psal, RTB ve WPF využívá k formátování značkování XAMLem, nikoliv RTF formát. Ani se nedivím, že ti to korektně nefunguje :D

Nahoru Odpovědět
21.8.2018 0:42
Programátor je stroj k převodu kávy na kód.
Avatar
Neaktivní uživatel:21.8.2018 20:51

Problém číslo 4 vyřešen – RTB nesmí být ve ScrollVieweru. Taková blbost, a mně to trvá měsíc :-)
S XAMLem jsem to taky nějak vyřešil, zkusil jsem si něco uložit z RTB a potom jsem kus zkopíroval. Ještě tak zjistit, jak zabarvit kus textu, a XMLreader bude zhruba hotov.

Myslím, že toto vlákno dočasně "uspím", je ale celkem pravděpodobné, že s tímto ještě nějaký problém budu mít. Kdyby někdo opravdu moc trval na označení svého (nebo číhokoliv) příspěvku jako řešení vlákna už teď (s pořádným odůvodněním), můžete mi to napsat do PM.

Nahoru Odpovědět
21.8.2018 20:51
Neaktivní uživatelský účet
Avatar
Odpovídá na vosa53
Neaktivní uživatel:24.8.2018 14:49

Tak AvalonEdit jsem vyzkoušel, je to skvělé (ale při 657647řádkovém souboru je trochu pomalejší :-) ). Kdyby mi nešlo o to si něco udělat sám, označil bych tvůj příspěvek jako řešení. Díky.

Nahoru Odpovědět
24.8.2018 14:49
Neaktivní uživatelský účet
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 19 zpráv z 19.