Avatar
Vít Ježek
Člen
Avatar
Vít Ježek:

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. dubna 1:28
Avatar
ostrozan
Redaktor
Avatar
ostrozan:

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 1. dubna 7:29
Avatar
ostrozan
Redaktor
Avatar
ostrozan:

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  +4 1. dubna 8:24
Avatar
Vít Ježek
Člen
Avatar
Odpovídá na ostrozan
Vít Ježek:

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. dubna 12:08
Avatar
ostrozan
Redaktor
Avatar
Odpovídá na Vít Ježek
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 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. dubna 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.