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í.
Pouze tento týden sleva až 80 % na e-learning týkající se C a C++. Zároveň využij akce až 80 % zdarma při nákupu e-learningu - více informací.
discount week 80 + hiring

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

Aktivity
Avatar
Hojdar Vít
Člen
Avatar
Hojdar 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
Redaktor
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
Redaktor
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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Hojdar Vít
Člen
Avatar
Odpovídá na ostrozan
Hojdar 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
Redaktor
Avatar
Odpovídá na Hojdar 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.