2013-08-22 8 views
5

In WPF, quando inserisco uno ProgressBar nel file XAML, la sua altezza è di circa 2 o 3 pixel per impostazione predefinita.C# WPF ProgressBar altezza "predefinita"

Tiny progress bar.

che altezza devo mettere per la coerenza con altre applicazioni Windows (e regolare l'altezza a seconda della risoluzione dpi, ecc)? Ho provato a impostare Height="auto" ma il risultato è lo stesso.

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <DockPanel Name="dockPanel1"> 
     <ProgressBar Name="progressBar1" Value="33" DockPanel.Dock="Top"/> 
     <TreeView Name="treeView1" /> 
    </DockPanel> 
</Window> 

risposta

8

di Windows Progressbar linea guida è un buon suggerimento di partenza,

Recommended sizing and spacing

Solo in caso il collegamento va via:

enter image description here

+0

La cosa "divertente" è che le dimensioni sono date in DLU e pixel (suppongo che i pixel siano convertiti dalle DLU usando i parametri predefiniti di Windows?), Ma non in DVI (che usa XAML). Oh bene. –

0

credo che l'altezza tipica di altri controlli è 23.

Così, per la vostra barra di avanzamento, utilizzare il seguente:

<ProgressBar Name="progressBar1" Height="23" Value="33" DockPanel.Dock="Top"/> 

si può decidere di modificare l'altezza su o in giù in base al contesto in cui sarà posizionata la barra di avanzamento e in che misura si desidera renderla visibile. Ho visto molte app con una barra di avanzamento molto alta in modo che l'utente sia sicuro di vederla. Dipende solo da come vuoi che guardi.

+0

altezza tipica di altri controlli è 23 con font predefiniti e DPI . Solo dicendo ... @GeorgesDuperon: Nel caso tu abbia qualcosa su cui vuoi ancorare come un'etichetta o un blocco di testo che eredita il suo stile di testo dal sistema operativo, potresti decidere di decidere l'altezza. Tutto dipende davvero dai requisiti. –

+2

Sono abbastanza sicuro che i valori WPF NON sono in pixel, ma sono un numero che verrebbe utilizzato come base e WPF prenderebbe in considerazione l'impostazione DPI e regolerà proporzionalmente l'altezza impostata in base alle impostazioni DPI. – Curtis

+0

punto giusto, mi sono dimenticato di unità indipendenti dal momento di lavorare in web land. Userei comunque qualcos'altro come ancoraggio piuttosto che codificare il valore. –