2017-05-22 1 views
0

J'ai une application WPF qui correspond à l'écran de mon ordinateur ayant une résolution d'écran 1920 * 1080. Mais la même application WPF ne rentre pas dans mon écran Microsoft Surface ayant la même résolution 1920 * 1080. Le problème exact est, il ne montre pas la barre de défilement dans ce petit ordinateur portable. Le problème est dans le XAML pour la page avec laquelle j'ai des problèmes et la fenêtre qui l'héberge. Toute suggestion serait appréciée. Merci.WPF L'application ne rentre pas dans tout l'écran

Le code est quelque chose comme ça en ce moment.

<Page x:Class="form_Dock" Background="#FF19191E" MouseEnter="Page_MouseEnter" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:ABC.UI" SnapsToDevicePixels="True"> 

Répondre

0

Cela peut être un problème de mise à l'échelle causé par WPF utilisant des pixels indépendants du périphérique pour déterminer la taille de l'application. L'écran Surface est assez petit, donc il peut y avoir une certaine mise à l'échelle dans Windows pour compenser, ce qui jette la taille de votre fenêtre.

Vous pourriez être en mesure de résoudre votre problème en définissant SnapsToDevicePixels sur l'élément de fenêtre true:

https://msdn.microsoft.com/en-us/library/system.windows.uielement.snapstodevicepixels(v=vs.110).aspx

En outre, ce qui explique l'appareil pixels indépendants très bien:

https://wpf.2000things.com/2013/02/19/759-device-independent-units-dips/

+0

Salut Simon. Merci beaucoup pour votre suggestion. J'ai essayé d'utiliser ceci dans mon code. Voici la partie du code où je l'utilise. . Est-ce là où j'ai besoin de mettre le code dans SnapsToDevicePixels = "True"? C'est dans tag pas dans Windows. Est-ce que ça importe? J'ai testé en surface. ça ne marche pas. – Robert

+0

Vous êtes censé définir SnapToDevicePixels sur l'élément racine, qui est normalement un objet Window. Les pages doivent être contenues dans un autre élément à afficher, donc mettre SnapToDevicePixels ne sera pas correct. Votre projet WPF s'exécute-t-il dans une fenêtre d'application ou un navigateur? Si vous avez donné à la page une largeur plus grande que celle du conteneur, cela affichera probablement des barres de défilement. –

+0

Vous avez mentionné Prism et Wpftoolkit ci-dessus - utilisez-vous un de leurs contrôles? –