Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[WPF] DPI scaling

Pagina: 1
Acties:

  • NinjaTuna
  • Registratie: Mei 2011
  • Laatst online: 09:03
Voor mijn huidige project voor de opleiding ben ik bezig aan een GUI voor de nodige visualisatie en overzicht in .NET en WPF (met XAML). Nu dacht ik het eens anders aan te pakken en de position en scaling van mijn UI-elementen te binden (zodat indirect alles van een beperkt aantal constants afhangt, zoals de grootte van de window), wat in theorie een mooi schaalbare applicatie oplevert, mocht ik iets willen veranderen aan de opbouw.

Nu is dat binden geen probleem, maar ik merkte dat ik ongewenste resultaten kreeg wanneer ik mijn window bijvoorbeeld probeerde op te delen in twee groupboxen met de breedtes van bijvoorbeeld 0.75*WindowWidth en 0.25*WindowWidth, In theorie zouden deze groupboxes dan de breedte van het gehele window moeten beslaan, maar dit bleek niet te gebeuren.

Na wat klooien kwam ik er achter dat dit het geval was doordat Windows mijn applicatiewindow opschaalde naar 125%, aangezien ik op een high-dpi (15" 1080p) laptop werk. Gekke is dus dat die groupboxes vervolgens niet op eenzelfde manier geschaald werden en de boel dus uit verhouding getrokken werd.

Is iemand bekend met dit probleem en hoe ik dit op kan lossen? Het doel is dus feitelijk dat ik gebruik kan maken van relatieve eenheden in plaats van de units die je normaal in XAML gebruikt.

Zelf had ik al wat gevonden om DPI awareness uit te zetten in de assemblyinfo, maar dat mocht niet baten. Ook het hardcoden van die factor 1.25 voor de groupboxes had niet het gewenste effect.

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Al geprobeerd te upgraden naar .NET 4.5.2? http://blogs.msdn.com/b/d...mework-4-5-2-release.aspx

Welke VS gebruik je?

Going for adventure, lots of sun and a convertible! | GMT-8


  • NinjaTuna
  • Registratie: Mei 2011
  • Laatst online: 09:03
VS 2013 Ultimate, maar wel .NET 4.0 aangezien dat voor zover ik weet de nieuwste versie is die op de uiteindelijk te gebruiken PC's draait. Goed dat je het aanhaalt, ik kan wel proberen wat er gebeurt als ik hem met de laatste .NET versie compile.

  • NinjaTuna
  • Registratie: Mei 2011
  • Laatst online: 09:03
Update: het bleek helemaal niet aan die DPI-scaling te liggen :/ Ik had zelf een fout gemaakt:
De functie InitializeComponent() werd eerder angeroepen dan de regel waarin ik de DataContext van het windows in stelde, dus de binding werd vervolgens niet meer geüpdatet...

Toch bedankt Snake!

Verwijderd

Wellicht niet van toepassing, maar toch; waarom gebruik je niet een Grid met star-sizing ipv bindings voor breedte?

Je kunt gewoon twee kolommen definiëren met een breedte van respectievelijk 3* en * om hetzelfde effect te bereiken, zonder datacontext nodig te hebben.

  • Caelorum
  • Registratie: April 2005
  • Nu online
of 75* en 25* als je dat makkelijker rekenen vind :)

  • NinjaTuna
  • Registratie: Mei 2011
  • Laatst online: 09:03
Hmm, daar wist ik niet vanaf eigenlijk. Thanks voor de tip(s)!
Pagina: 1