Diskuze: Vzhled a funkčnost WPF aplikace
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 18 zpráv z 18.
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.
Tak, to jsi moc neupresnil. S VS nedelam, ale treba ti neco malo poradim... Predpokladam, ze jde o excel a visual basic VBA.
Excel ma moznost zaznamenat macro, vsechny kroky ktere udelas. Cili, treba otevreni zalozky tabsheet. Ten kod si pak staci upravit podle sebe
google = excel visual basic open new tab sheet
https://excelchamps.com/…d-new-sheet/
ActiveWorkbook.Sheets.Add
Sheets.Add Count:=5
Sheets.Add.Name = Range("A1") ' name pouzije podle textu v bunce A1
Sheets.Add Before:=Worksheets("mySheet") ' zarazeni pred a za
Sheets.Add After:=Worksheets("mySheet")
Sheets.Add After:=Sheets(Sheets.Count) ' zarazeni na konec
Nikoliv. Jde o klasickou desktopovou aplikaci C# WPF. Umím pomocí dockpanelů v MainWindow udělat, aby se mi okna otvírala do daného místa, ale chtěl bych docílit fungování jako ve VS, aby ta okna měla "ouška" jejichž pomocí by se mezi nimi dalo přepínat zobrazení (viz příloha)...
Ja tyhle veci delam v css/js bootstrapu.
https://getbootstrap.com/…s/navs-tabs/#…
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#home-tab-pane" type="button" role="tab" aria-controls="home-tab-pane" aria-selected="true">Home</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile-tab-pane" type="button" role="tab" aria-controls="profile-tab-pane" aria-selected="false">Profile</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="contact-tab" data-bs-toggle="tab" data-bs-target="#contact-tab-pane" type="button" role="tab" aria-controls="contact-tab-pane" aria-selected="false">Contact</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="disabled-tab" data-bs-toggle="tab" data-bs-target="#disabled-tab-pane" type="button" role="tab" aria-controls="disabled-tab-pane" aria-selected="false" disabled>Disabled</button>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home-tab-pane" role="tabpanel" aria-labelledby="home-tab" tabindex="0">...</div>
<div class="tab-pane fade" id="profile-tab-pane" role="tabpanel" aria-labelledby="profile-tab" tabindex="0">...</div>
<div class="tab-pane fade" id="contact-tab-pane" role="tabpanel" aria-labelledby="contact-tab" tabindex="0">...</div>
<div class="tab-pane fade" id="disabled-tab-pane" role="tabpanel" aria-labelledby="disabled-tab" tabindex="0">...</div>
</div>
k tomu das link na css bootstrapu, js bootstrapu a mas hotovo 
Tady mam neco podobneho, ale pouzivam vlastni js-css kod.
https://peter.mlich.cz/…ng/index.htm#tab0
Toto je ovšem o webové stránce a hlavně o predem daném počtu záložek, ja bych to potřeboval na desktopu, vytvářet dynamicky a hlavně aby to fungovalo jako ve VS, abych to okno mohl vzít myší a přesunout...
Nebo třeba, jak fungují webové prohlížeče s kartami...
Jsi narocny. Tak s tim ti bohuzel neporadim. Ale, aspon jsi to upresnil 
Jen mne zarazi, ze okna chces presouvat a zalozkovat. Ja si predstavuji apku
jako full-screen.
google = c# drag and drop window tabsheet
https://stackoverflow.com/…other-window
Ano mám appku jako fuulscreen (viz obr) a doprostřed se mi otevírají jednotlivá okna (resp. View). Nicméně nemohu jich mít otevřených více najednou a přepínat mezi nimi kliknutím myši, jako ve VS nebo v různých webových prohlížečích. Mohu je samozřejmě naprogramovat, aby se otvírala jako samostatná plovoucí okna, ale já měl právě představu, jak jsem popsal...
TabControl znám, ale ten je (alespoň myslím) o staticky nastaveném počtu záložek. Já chtěl, aby se program choval třeba jako webové prohlížeče s kartami, jako např. když dám otevřít odkaz na nové kartě... Taky mohu tu jednotlivou kartu chytit myší a udělat z ní plovoucí okno...
Podle toho co tak letmo vidím tak minimálně to dynamické přidávání a odebírání záložek a jejich přehazování pomocí drag and drop by to zvládnout mělo, ale to plovoucí okno to nevím...
No, už jsem z toho hledání srnec, daněk, jelen... Nějak to přeci musí jít, když se to používá ve VS i ve webových prohlížečích...
Popovídej si o tom s ChatBotem, určitě dá dobré rady. Třeba že TabControl umožňuje dynamicky přidávat záložky, apod.
using System.Windows;
using System.Windows.Controls;
namespace DynamicTabsExample
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
// Při načtení okna přidáme počáteční záložku
AddNewTab();
}
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Pokud je vybraná poslední záložka, přidáme novou
if (tabControl.SelectedIndex == tabControl.Items.Count - 1)
{
AddNewTab();
}
}
private void AddNewTab()
{
// Vytvoření nové záložky
TabItem newTab = new TabItem();
newTab.Header = "New Tab";
// Přidání obsahu do záložky
TextBlock tabContent = new TextBlock();
tabContent.Text = "Content of the new tab.";
newTab.Content = tabContent;
// Přidání záložky do ovládacího prvku TabControl
tabControl.Items.Insert(tabControl.Items.Count - 1, newTab);
// Nastavení nové záložky jako vybrané
tabControl.SelectedItem = newTab;
}
}
}
Zdravím,
mohlo by toto vyřešit tvůj problém?
WPF Window Allows Tabbing by Drag and Drop
P.S.: po registraci a přihlášení lze sáhnout kompletní demo zdroják.
Vypadá to zajímavě, díky za tip, vyzkouším a dám vědět...
Zobrazeno 18 zpráv z 18.
