Avatar
Andy Scheuchzer:8. července 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 (tady je první otázka – jak souvisí RichTextBox ve WF a WPF), tak jsem to konečně přesunul do WF, kde jenom nescrolluje (druhá otázka – jak docílit scrollování (ale zas ne samovolného)).
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ý :-) )

WPF
WF 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. července 14:01
Od ASM úroveň jazyků pouze klesá…
Avatar
Odpovídá na Andy Scheuchzer
Michal Štěpánek:9. července 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  +1 9. července 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
Andy Scheuchzer:9. července 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. července 10:06
Od ASM úroveň jazyků pouze klesá…
Avatar
Odpovídá na Andy Scheuchzer
Michal Štěpánek:9. července 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. července 10:16
Nahoru Odpovědět 9. července 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
Andy Scheuchzer:9. července 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 některé značky vykreslí i s ">", které mají mít jinou barvu. Pravděpodobně je to nějaká chyba v indexování i a j, ale zatím se mi to nepovedlo opravit.
  2. ve WPF se mi všechno (co se teda zobrazí) zobrazí po znaku na řádek (MapTbx 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. července 10:44
Od ASM úroveň jazyků pouze klesá…
Avatar
Odpovídá na Andy Scheuchzer
Erik Šťastný:9. července 10:54

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

 
Nahoru Odpovědět 9. července 10:54
Avatar
Odpovídá na Erik Šťastný
Andy Scheuchzer:9. července 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. července 10:59
Od ASM úroveň jazyků pouze klesá…
Avatar
Odpovídá na Andy Scheuchzer
Erik Šťastný:9. července 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. července 11:03
 
Nahoru Odpovědět 9. července 11:02
Avatar
Odpovídá na Erik Šťastný
Andy Scheuchzer:9. července 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. července 11:06
Od ASM úroveň jazyků pouze klesá…
Avatar
Odpovídá na Andy Scheuchzer
Erik Šťastný:9. července 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. července 11:13
 
Nahoru Odpovědět 9. července 11:12
Avatar
Odpovídá na Erik Šťastný
Andy Scheuchzer:9. července 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. července 11:15
Od ASM úroveň jazyků pouze klesá…
Avatar
Odpovídá na Andy Scheuchzer
Erik Šťastný:9. července 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  +1 9. července 11:20
Avatar
Andy Scheuchzer:17:53

Stále žádný nápad?

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

  1. Jak souvisí RichTextBox 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í i a j, 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 17:54
Nahoru Odpovědět 17:53
Od ASM úroveň jazyků pouze klesá…
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Andy Scheuchzer
krepsy3: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 18:26
Programátor je stroj k převodu kávy na kód.
Avatar
vosa53
Člen
Avatar
Odpovídá na Andy Scheuchzer
vosa53: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í.

Avatar
Odpovídá na krepsy3
Andy Scheuchzer: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í odtud, 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 19:39
Nahoru Odpovědět 19:37
Od ASM úroveň jazyků pouze klesá…
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 16 zpráv z 16.