Diskuze: WPF - navigace JEDNODUSE ve stejnem okne
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 25 zpráv z 25.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Můžeš použít TabControl a přepínat mezi taby, viz http://www.itnetwork.cz/…rms-poctvrte a nebo si naklikej překrývající se Gridy a měň u nich viditelnost. Visibility.Visible či Collapsed.
Super to s tema tabama se mi líbí, to zkusím a prosím tě co by jsi mi ještě poradil když bych chtel udelat nějáky menu 2 sloupce , v levym bych mel buttony a když bych na nejaky kliknul tak aby se mi zmenil obsah toho praveho sloupce. ale vse vylo v jednom okne. Díky
Jaký "obsah okna" máš na mysli (labely?, obrázky?, pozadí?,...) a jaké "změny" by se po stisku tlačítka měly provést?
děláš instalátor?
No pro me by bylo uplne idealni abych tam moh dat cokoli. v podstate aby to delalo to stejny jako kdybych udelal new window, akorat ze by se to neotevrelo v novem okne ale v pravym sloupci.
Tos to moc neupřesnil... Ptal jsem se, co chceš měnit, protože asi obrázek budeš blbě dostávat do labelu apod...
Mzslel jsem ye existuje neco jako New window , ale kterz se neotevre v novzm okne, ale v tom stavajicim nebo pripadne tam kde mu urcim, treba v druhzm sloupci kdzy ten formular budu mit roydelenej na dva sloupce.
Hm jsem v praci a mame asi blokly uploadovani cehokoli. Chtel bych abych si
proste v levym sloupci tlacitkama ovladal pravej sloupec kterej by byl ve
stejnym okne ale menilo by se v nem cokoli chci jako kdyby to bylo novy okno ,
ten obrazek poslu z domova vecer.
Nasel jsem ze by to pry slo pres nejaky user control, ale nikde jsem k
tomu nenasel poradnej navod.
Prosim tě tak jsem zkoušel hledat a potřeboval bych přesně to co je v tom videu, ale kdyř píšu do toho code behind to
btn.Children.add (object); . Tak mi VS napise ze zadny Children neexistuje nevis proc? Presne tohle bych potreboval
https://www.youtube.com/watch?…
je to zhruba v 8:50 .
Prosim tě tak jsem zkoušel hledat a potřeboval bych přesně to co je v tom videu, ale kdyř píšu do toho code behind to
btn.Children.add (object); . Tak mi VS napise ze zadny Children neexistuje nevis proc? Presne tohle bych potreboval
https://www.youtube.com/watch?…
je to zhruba v 8:50 .
Children označuje všechny prvky/elementy, které jsou mezi tagy
<StackPanel> a </StackPanel> případně Gridu. Třeba tlačítka
(Button) toto nepodporují. Možná si dříve pořádně procvič XAML a
pozicování, pak ti tohle půjde bezproblémově 
V tom videu právě Children nastavuje StackPanelu, má ho pojmenovaný stkTest.
Nikde jsem tu článek Gridech a StackPanelu nenašel, tak se pokusím napsat krátké shrnutí.
Grid ti dává více svobody, pro rozumné použití je třeba definovat sloupce (Column) a řádky (Row).
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
</Grid>
Tlačítko pak na určitou pozici dás takto:
<Button Grid.Row="1" Grid.Column="1" />
(počítá se od 0)
Používej relativní rozměry pomocí Auto a *. Auto znamená, že řádek či sloupec bude tak veliký, aby se do něj vešel obsah, ale ne víc. * značí, aby sežral všechno dostupné místo.
Stackpanel prostě prvky skládá pod sebe, tak jak jsou v něm seřazené v XAML kódu. Můžeš je skládat ještě vodorovně, na to má StackPanel vlastnost Orientation.
Díky za odpověd tomuhle rozumim , jde mi pravě o to jak udělat, aby se mi nějáky formulař třeba ten UserControl " propojil" s main window přesně jako to dělá ten kluk v tom videu.
Nevim jak to napsat jednoduše. 2 sloupce v levym tlačitko na ktery když
kliknu tak se mi v pravym sloupci zobrazi obsah formulaře user control nebo
nejakeho jineho ktery budu mit vytvoreny.Myslim ze to uz pujde s tim children
poplet jsem tam asi jmeno ze jsem dal jmeno button a ne stack panelu, uz se
tesim domu abych to moh zskusit 
Pokud jsem Tě pochopil, tak si prostě udělej Grid, do kterého si
naskládej co chceš (labely, textboxy, atd - prostě to co chceš po kliku
zobrazovat), umístni si ho do hlavního okna tam, kde se má následně
zobrazit a nastav mu Visibility.Collapsed. Až ho budeš chtít zobrazit (tzn
v eventu tlačítka) mu nastav Visibility.Visible a je to.
Chtělo by si to projít pár tutoriálů a podle nich udělat pár programů,
protože jsi evidentně zmatený.. 
Ahoj no to asi presne potrebuju, podle me jsem uz prosel tutorialu tolik ze
jsem z toho zmateny
. a
poradil by jsi mi nejakej ve kterym je primo priklad jak xaml tak i codebehind s
tou visibilitou?
XAML (ty Marginy jsou vygenerovené tím, že jsem si to ručně napozicoval v designeru)
<Button Name="myButton" Content="Show" Margin="158,10,182,280" Click="myButton_Click"></Button>
<Grid Name="myGrid" Margin="0,44,0,0" Visibility="Collapsed">
<Label Name="myLabel" Content="Text test text test text" Margin="0,0,0,244"></Label>
<TextBox Name="myTextBox" Margin="0,31,0,217"></TextBox>
<Button Name="mySaveButton" Content="Save" Margin="0,63,268,185"> </Button>
</Grid>
Code:
private void myButton_Click(object sender, RoutedEventArgs e)
{
if (myGrid.Visibility != Visibility.Visible)
myGrid.Visibility = Visibility.Visible;
else
myGrid.Visibility = Visibility.Collapsed;
}
EDIT:
http://www.wpftutorial.net/
Tady je spousta užitečných věcí o WPF. Stačí hledat, najdeš toho na netu
mraky.. 
Není zač - ber to jen jako příklad pro tu Visibilitu. Absolutní
pozicování posléze moc nepoužívej (když zmenší okno, tak to zakryje
obsah Tvého gridu), ale tak to už je povídání k nějakému dalšímu
tutorialu. 
Nastavovat Visibilitu se posléze dá spoustě objektů (tlačítka, labely, textboxy, nebo třeba celé gridy, stackpanel, atp). Pak je ještě supr vlastnost IsEnabled - například u tlačítka se s tím dá krásně hrát, když chceš, aby uživatel neměl možnost na něj klikat, ale aby ho viděl. Použít se to dá třeba u potvrzování licence - pokud si uživatel nesjede scrollem nakonec, tak je necháš defaultně:
acceptButton.IsEnabled = false
A na konci scrollování zase nastavíš true a je to. 
(to už jsem ale asi trochu off-topic
)
Zobrazeno 25 zpráv z 25.