Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Inserireuna Sidebar in un progetto
Forum - C# / VB.NET - Inserireuna Sidebar in un progetto

Avatar
fosforo (Normal User)
Expert


Messaggi: 346
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 18:22
Mercoledì, 01/04/2020
Ciao

Vorrei inserire una sidebar stile Visual Studio in un progetto WPF.
Conoscete qualche pacchetto Nuget che le preveda?


Grazie anticipatamente

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 825
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 22:42
Mercoledì, 01/04/2020
Ciao fosforo, per i progetti WPF, le interfacce si compongono in XAML, e tra gli strumenti preconfezionati esiste lo ScrollViewer, che è di fatto una sidebar.
se incolli questo xaml in un progetto vuoto, per creare l'interfaccia, puoi vedere se è quello che cerchi
Codice sorgente - presumibilmente Plain Text

  1. <Window x:Class="MainWindow"
  2.             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5.             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6.             xmlns:local="clr-namespace:SideBar"
  7.             mc:Ignorable="d"
  8.             Title="MainWindow" Height="483.645" Width="800">
  9.     <Grid Margin="0,0,0,-1033">
  10.         <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Margin="24,21,531,1047" Background="#FFF0F0F0" BorderBrush="Black">
  11.             <WrapPanel MinWidth="100" Width="{Binding ElementName=MyScrollViewer, Path=ViewportWidth}">
  12.                 <Button Width="100">1</Button>
  13.                 <Button Width="100">2</Button>
  14.                 <Button Width="100">3</Button>
  15.                 <Button Width="100">4</Button>
  16.                 <Calendar Width="202"/>
  17.                 <TextBox Height="23" TextWrapping="Wrap" Text="Che giorno è oggi?" Width="234"/>
  18.                 <TextBox Height="23" TextWrapping="Wrap" Text=" " Width="236"/>
  19.                 <RichTextBox Height="198" Width="159">
  20.                     <FlowDocument>
  21.                         <Paragraph>
  22.                             <Run Text="Nella richtextbox puoi caricare file testo anche esterni provenienti da file o da database. Più il testo è lungo e più la casella può essere allungata e la scroll view allungherà la barra potendo sorrere tutto, naturalmente i componenti successivi scorrerano prorio come ci si aspetta da una sidebar "/>
  23.                         </Paragraph>
  24.                     </FlowDocument>
  25.                 </RichTextBox>
  26.                 <TextBox Height="23" TextWrapping="Wrap" Text=" " Width="235"/>
  27.                 <DatePicker Width="206"/>
  28.                 <RichTextBox Height="425" Width="235">
  29.                     <FlowDocument>
  30.                         <Paragraph>
  31.                             <Run Text=" L'Agenzia Europea per i Medicinali (EMA) comunica nella sua nota di aggiornamento del 31 marzo che al momento, e sulla base dei dati preliminari presentati all'Agenzia, nessun farmaco ha ancora dimostrato la sua efficacia nel trattamento del COVID-19.
  32.      
  33.     L'Agenzia nelle ultime settimane e negli ultimi mesi ha avviato un dialogo con numerosi sviluppatori di farmaci con finalità terapeutiche e una serie di sviluppi sono già in corso. Il team di risposta al COVID-19 di EMA è attualmente in contatto con gli sviluppatori di circa 40 terapie farmacologiche per consentire una migliore comprensione dei potenziali trattamenti. Per quanto riguarda i vaccini l'EMA stima che potrebbe essere necessario almeno un anno prima che un vaccino contro il COVID-19 sia pronto per essere approvato e sia disponibile in quantità sufficienti per consentirne un utilizzo diffuso. Attualmente su due vaccini si stanno conducendo sperimentazioni di fase I.  "/>
  34.                         </Paragraph>
  35.                     </FlowDocument>
  36.                 </RichTextBox>
  37.                 <Button Width="100">5</Button>
  38.                 <Button Width="100">6</Button>
  39.                 <Button Width="100">7</Button>
  40.                 <Button Width="100">8</Button>
  41.             </WrapPanel>
  42.         </ScrollViewer>
  43.     </Grid>
  44. </Window>


Naturalmente di tutto questo qui sopra ho scritto solo i testi, e la riga che inizializza il WrapPanel, il resto è composto in modo visuale.

Ho messo degli strumenti a caso, la puoi comporre come vuoi tu gli strumenti si disporranno automaticamente.
nella gif animazione della sidebar


Carlo ha allegato un file: sidebar.gif (506311 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da Carlo il 01/04/2020 alle 23:21


in programmazione tutto è permesso
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 346
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 11:55
Mercoledì, 08/04/2020
Bello ed esaustivo.
Vorrei farti un'altra domanda:
possibile che il pannello si possa nascondere?
magari di lato, proprio come VS.


PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 825
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 12:03
Mercoledì, 08/04/2020
in XAML esiste: Visibility="Collapsed"
Ti consiglio di guardare questo articolo di Mikelius:
http://www.pierotofy.it/pages/guide_tutorials/Informatica/ ...


in programmazione tutto è permesso
PM Quote