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í.

Diskuze: c# WPF - více oken, jedno 'tlačítko okna' na hlavním panelu

Aktivity
Avatar
Ježek Vít :1.4.2016 1:28

Ahoj,
řeším drobnost. V programu otevírám nějaké to vyskakovací okno a postupně se mi jimi zaplňuje hlavní panel ve Windows. Cožse mi zrovna dvakrát nelíbí.
Existuje možnost jak v c# WPF zařídit, aby se v hlavním panelu zobrazovala vždy jedna ikona programu a ne několik podle otevřených oken ve spuštěném programu?
Vím, že to umí Win implicitně, ale o to mi nejde.
Případně i bonusový dotaz: jak zařídit, aby vždy to poslední otevřené okno (MessageBox) bylo aktivní a ostatní (tedy nadřízená okna) nikoliv?

Odpovědět
1.4.2016 1:28
Nemyslím, tedy nejsem.
Avatar
ostrozan
Tvůrce
Avatar
ostrozan:1.4.2016 7:29

jak zařídit, aby vždy to poslední otevřené okno (MessageBox) bylo aktivní a ostatní (tedy nadřízená okna) nikoliv?

zařizovat to nemusíš nijak - takto to funguje automaticky u dialogových oken - jako je třeba MessageBox, OpenFileDialog apod.

stejně tak, když otevřeš nové Window příkazem ShowDialog();

 
Nahoru Odpovědět
1.4.2016 7:29
Avatar
ostrozan
Tvůrce
Avatar
ostrozan:1.4.2016 8:24

Jedna poznámka - nejen k autorovi vlákna.

Poslední dobou se tu čím dál častěji objevují dotazy k WF, WPF aplikacím, kde se otvírá spousta nových oken - formulářů .
Dokonce takové nesmysly , že z prvního okna se otvírá druhé, z něj třetí, z něj čtvrté........... (jako programátorská etuda dobré, ale v praxi velmi špatné řešení)

Na to vymysleli vývojáři šikovnou věcičku a jmenuje se TabControl :)

V dobře navržené aplikaci se otvírá vždy jen jedno další okno - a to dialogové - provést akci a zpět do hlavního okna.
Pak se taky samozřejmě nemůže stát, že se zaplní panel ikonama.

To že nám .Net umožňuje "škrábat se levou rukou za pravým uchem" neznamená, že bysme neměli používat nejjednodušší možné postupy.

 
Nahoru Odpovědět
1.4.2016 8:24
Avatar
Odpovídá na ostrozan
Ježek Vít :1.4.2016 12:08

ostrozan - TabControl tam mám celkově 7 :-) používám. Nejvyšší počet otevřených oken na sobě jsou tři, což je o jedno více než píšeš, tak to snad není o tolik více. Samozřejmě jsem se to snažil těmi TabControly omezit, ale na dvě okna to nedám :-)
A i ty dvě okna vedle sebe se mi nelíbí.
Ohledně aktivních oken -> mi se právě občas stalo, že i to spodní bylo aktivní, aniž bych to speciálně vyžadoval. Ta otázka tedy mohla být napsána přesněji - (jak) je možné, aby bylo spodní okno aktivní i při otevřeném vyskakovacím ('druheOkno.Show­Dialog()')?

Nahoru Odpovědět
1.4.2016 12:08
Nemyslím, tedy nejsem.
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na Ježek Vít
ostrozan:1.4.2016 12:55

TabControl tam mám celkově 7 :-) používám. Nejvyšší počet otevřených oken na sobě jsou tři, což je o jedno více než píšeš

tak to z dotazu nebylo zřejmé - ten spíš budil dojem, že otvíráš tolik oken, že se ti ikony na panel ani nevlezou :-)

a k té otázce - možné by to (v ideálním případě ) být nemělo - pokud ho neotvíráš jako druheOkno.Show()

 
Nahoru Odpovědět
1.4.2016 12:55
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 5 zpráv z 5.