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