Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Michal Štěpánek:22. února 17:02

Ahoj, snažím se předělat některé mé starší aplikace, jsem věčný začátečník...

Zkusil jsem: Tak nějak nevím, jak se na to konkrétně mám strejdy gůgla zeptat...

Chci docílit: Rád bych docílil fungování jako ve Visual Studiu, tzn., že by se jednotlivá okna otevírala tak, jako jsou "karty" souborů ve VS.
Mohl by mne někdo prosím nasměrovat, kde bych to mohl nastudovat?
Díky za nakopnutí

Odpovědět
22. února 17:02
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:23. února 7:40

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
 
Nahoru Odpovědět
23. února 7:40
Avatar
Odpovídá na Peter Mlich
Michal Štěpánek:23. února 8:50

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)...

Nahoru Odpovědět
23. února 8:50
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:23. února 10:46

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 :)

 
Nahoru Odpovědět
23. února 10:46
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:23. února 10:52

Tady mam neco podobneho, ale pouzivam vlastni js-css kod.
https://peter.mlich.cz/…ng/index.htm#tab0

 
Nahoru Odpovědět
23. února 10:52
Avatar
Odpovídá na Peter Mlich
Michal Štěpánek:23. února 11:00

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...

Nahoru Odpovědět
23. února 11:00
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Peter Mlich
Michal Štěpánek:23. února 12:18

Nebo třeba, jak fungují webové prohlížeče s kartami...

Nahoru Odpovědět
23. února 12:18
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:23. února 12:19

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

 
Nahoru Odpovědět
23. února 12:19
Avatar
Odpovídá na Peter Mlich
Michal Štěpánek:23. února 12:26

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...

Nahoru Odpovědět
23. února 12:26
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Michal Štěpánek
Atrament:23. února 12:40

Myslím že hledáš TabControl

 
Nahoru Odpovědět
23. února 12:40
Avatar
Odpovídá na Atrament
Michal Štěpánek:23. února 16:06

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...

Nahoru Odpovědět
23. února 16:06
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Michal Štěpánek
Atrament:23. února 16:25

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...

 
Nahoru Odpovědět
23. února 16:25
Avatar
Odpovídá na Atrament
Michal Štěpánek:23. února 16:28

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...

Nahoru Odpovědět
23. února 16:28
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Michal Štěpánek
DarkCoder:23. února 19:51

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;
        }
    }
}
Nahoru Odpovědět
23. února 19:51
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Jirka Jr
Člen
Avatar
Odpovídá na Michal Štěpánek
Jirka Jr:26. února 18:22

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.

Editováno 26. února 18:24
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
26. února 18:22
Avatar
Odpovídá na Jirka Jr
Michal Štěpánek:26. února 20:09

Vypadá to zajímavě, díky za tip, vyzkouším a dám vědět...

Nahoru Odpovědět
26. února 20:09
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
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 18 zpráv z 18.