2012-08-16 11 views
17

In Windows 8 RTM con VS2012 RTM ho notato che la mia app WPF mi dava dei pulsanti radio deformati, quindi ho deciso di creare un campione per vedere se stavo facendo qualcosa di sbagliato.Perché i miei pulsanti WPF di Windows 8 sono tutti fuori gioco?

Ecco l'intero XAML App:

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" SizeToContent="WidthAndHeight"> 
    <Grid> 
     <StackPanel Margin="20"> 
      <RadioButton Content="Option 1" GroupName="1"/> 
      <RadioButton Content="Option 2" GroupName="2"/> 
      <RadioButton Content="Option 3" GroupName="3"/> 
     </StackPanel> 
    </Grid> 
</Window> 

Qui ho le impostazioni DPI impostato al 100%, che è in realtà NON l'impostazione predefinita in Windows 8 (beh, almeno per il mio schermo 1920x1200 non è) . Vedrai che i pulsanti radio sono perfetti.

enter image description here

Questa è la stessa esatta applicazione con impostazioni DPI a 125%, che è il DPI di default per la risoluzione dello schermo.

enter image description here

Ecco 150%

enter image description here

Si possono vedere i cerchi interni non sono centrati all'interno del cerchio esterno e sembra terribile. Le applicazioni di sistema con i pulsanti radio sono soddisfacenti, ma la mia app WPF 4.5 non lo è. Ancora una volta questa app di esempio è composta da bit RTM al 100% e da zero in Win 8.

È tutto rotto o esiste un modo per risolvere il problema (a parte insistere sul fatto che le persone inseriscano il 100% di ridimensionamento DPI).

speravo davvero Win8 sarebbe andato un lungo cammino per l'alta risoluzione schermi e problemi di scala come questo, ma qualcosa di semplice è male rotto, fuori dalla scatola :-(


Edit: depositata connect bug https://connect.microsoft.com/VisualStudio/feedback/details/758368/radio-button-rendering-is-incorrect-on-windows-8-with-125-dpi-scaling-set

Edit: 8/29/12:

il team WPF ha recentemente rivisto questo problema e non sarà affrontare questo problema come in questo momento la squadra si sta concentrando sui bug che influiscono sul maggior numero di sviluppatori WPF. Se ritieni che sia stato risolto per errore, riattiva questo bug con i dettagli di supporto necessari di .

+0

Probabilmente non è colpa di Win8 di per sé - WPF disegna tutti i suoi controlli, anche se i temi predefiniti escono nel sistema operativo per alcuni di essi per ottenere una migliore integrazione. Questo potrebbe essere un bug nella (ancora prerelease) versione .NET 4.5 di WPF. Segnalalo a Microsoft e vedi se pensano che valga la pena aggiustarlo (sfortunatamente non sono sempre d'accordo con persone come noi su ciò che vale la pena aggiustare). –

+0

Penso che l'OP abbia detto che stava costruendo tutto questo con i bit RTM. Se è così, è un po 'preoccupante. Sto per ripagare la mia macchina di sviluppo con RTM di W8 e VS - spero che non ci siano più trucchi come questo. – ZombieSheep

+0

@matthew - buon ricordo che WPF disegna i suoi controlli. appena controllato al 125% su Win7 e sono perfettamente centrati se un po 'sfocato. Lo segnalerò non appena troverò il posto giusto per farlo. e siccome zombiesheep ha detto che sto usando RTM e non mi aspetto alcun aggiornamento a questo: -/in una vera e propria app business ampiamente diffusa sarei imbarazzato a dover spedire questo –

risposta

0

Si potrebbe provare a mettere lo StackPanel in un viewBox .. forse

+0

Che sconfigge la grafica vettoriale –

1

Tutto in WPF è in stile. Nel caso degli stili di sistema predefiniti, a volte, nella mia esperienza personale, hanno piccoli problemi come questo. Una semplice soluzione, per confermare che è lo stile e non il sistema operativo stesso, è quello di ridimensionare il controllo da solo e vedere se questo lo risolve.

È possibile trovare lo stile originale guardando la domanda this. Questi ti aiuteranno a ricostruire e/o correggere il problema

Problemi correlati