Diskuze: WPF tabulka
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 11 zpráv z 11.
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.
Jinak pro doplnění, používám komponentu Grid (možna by se na to hodila jiná) Ale potřebuju pak do buněk dávat ruzné veci jako button atd. Respektive to bude takovej kalenrář ukolů zamestnanců, který se bude tahat z databáze.
zkus nakreslit co chces. nejak sem to nepochopil z textu.
Hele, podle mě na to jdeš zbytečně složitě. Udělej si normální
DataGrid a nastav mu, že každá buňka tabulky bude obsahovat vlastní Grid.
Tohle samo o sobě ti nabízí ohromné možnosti, protože do tohoto Gridu v
tabulce pak můžeš generovar úplně cokoliv.. například ty tlačítka a
přitom ti zůstaně úplně stejný uživatelský přístup (co se manipulace s
tabulkou týče). 
Ahoj, pokud bude těch věci na vykreslení víc a pro různé buňky budeš
potřebovat úplně jiné styly, řešil bych to vlastním userControlem.
Pro každý styl si uděláš vlastní user control ve WPF (nebudeš muset
všechno vytvářet dynamicky za běhu) a pak do dané buňky gridu jen
plácneš userControl který se ti tam zrovan hodí
Navíc do toho userControlu
můžeš přenés část logiky (stisky tlačítek atd.) takže to pak nemusíš
mít všechno v jednom souboru.
Abych to lépe popsal tak jsem to namaloval.
Tabulka se vytvaři z nejaké databaze kde taham čas a jak dlouho bude ukol
trvat.
Ta se musí dělat dynamicky, v akždém políčku bude nahoře butonek (to jsou
ty malé čtverečky černé) kde bude dalsi funkčnost (nějké přidavani
ukolu atd...)Z databáze se bude urcovat barva podle tooh jaký je to ukol. Jde
mi o to že ta jedna hodina je rodělená po 1řti minutach a chcu aby šla
videt dycky jenom border té jedné hodiny. Proste tak jak to mám já. Dále
aby samozřejme to bylo dynamické tedy když budou v kolizi nejaké ukoly tak
se to dá na další řadek jak jsem demonstroval u pepu.
V tom případě děláš ale harmonogram a né tabulku jak jsi říkal.
Hele a co takhle si tam hodit
GridSplitery? Uživatel by měl pak možnost si jednotlivé buňky zvětšovat a
zmenšovat podle libosti a přitom by ti to pěkně fungovalo na oddělení.
Kdysi jsem dělal na jednom
velkém projekty, šlo o řízení výroby pomocí Ganttových diagramů, což
je ještě složitější než tvůj harmonogram. Tehdy jsem to řešil tak, že
jsem si celou pracovní plochu vykresloval do Canvasu, to mě dovolilo
vytvářet doslova cokoliv mě napadlo na ploše. Což by v tvém případě
klidně mohlo být, že by sis vykreslil třeba Rectangly a nastavil jim
událost na kliknutí - což by ti nahradilo tlačítka. 
Na jakej koliv obrázek co namaluju jde nastavit nejaká udalost?..Třeba
mouseOver, Click, Double click, DragAndDrop,...atd..? Jeslti ano tak to tak
možná udělám 
Samozřejmě, že jde
např:
Rectangle newRectangle = new Rectangle();
newRectangle.MouseLeftButtonDown += new MouseButtonEventHandler(newRectangle_MouseLeftButtonDown);
private void newRectangle_MouseLeftButtonDown(object sender, MouseEventArgs e)
{ }
Události si můžeš vytvářet na cokoliv tě napadne. Už jen tím, že
napíšeš např zmíněný newRectangle. , tak ti našeptávaš ukazuje vše co
je možné nastavit, včetně událostí. 
Jasně jasně děkuju, a jeste jednu otazku prosímte, Zkouším vytvařet ty
rectangly ale nejde mi nijak nastavit border nalevo atd. Viš jakože bych
napsal mujRect.Border(1,1,5,0); s tím že ten posledni by proste nebyl
videt.
Děkuju 
Normálně se dá rámeček pro Rectangle nastavit přes vlastnost .Stroke, ten má ovšem jen jednu nastavitelnou velikost tloušťky a vede kolem celého rectanglu. Pokud chceš vykreslit něco tak specifického, jako je nesymetrický rámeček, tak musíš vykreslit v podstatě dva objekty: Rectangle a Border zvlášť. Např:
Border newBorder = new Border();
newBorder.BorderThickness = new Thickness(1, 1, 5, 0);
newBorder.BorderBrush = Brushes.Black;
newBorder.Width = 200;
newBorder.Height = 40;
Rectangle newRectangle = new Rectangle();
newRectangle.Width = 200;
newRectangle.Height = 40;
newRectangle.Fill = Brushes.Red;
//newRectangle.Stroke = Brushes.Black;
mujCanvas.Children.Add(newRectangle);
mujCanvas.Children.Add(newBorder);
Samozřejmě na konci musíš prvně vykreslit rectangle a pak rámeček,
protože ten ho překreslí. 
Zobrazeno 11 zpráv z 11.
