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.

Člen

Zobrazeno 18 zpráv z 18.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.