Comment obtenir/de détecter la taille de l'écran de Xamarin.Les formes?
Je suis en train de réécrire une application que j'ai écrit pour iOS. J'allais écrire une version d'android, mais pensé qu'Il serait mieux pour faire de cette occasion pour utiliser Xamarin.Les formulaires. Faire une page à la fois, maintenant, je suis bloqué sur une page où j'ai besoin d'obtenir la largeur de l'écran et de la hauteur. Quelqu'un sait-il l'équivalent de l'iOS " Vue.Cadre.Largeur de Xamarin.Les formes?
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas actuellement un moyen de Xamarin.Les formulaires de lui-même, mais nous l'avons mis en œuvre comme PCL interface compatible de Xamarin.Les formulaires.Les laboratoires de laquelle vous pouvez obtenir à partir de NuGet ou de code source à partir de GitHub.
https://github.com/XForms/Xamarin-Forms-Labs
IDevice a IDisplay propriété de l'information; la hauteur, la largeur, la densité de pixel pour X & Y et un couple de méthodes d'extension pour calculer la taille en pouces.
Exemple de page pour obtenir des informations de l'appareil:
https://github.com/XForms/Xamarin-Forms-Labs/blob/master/samples/Xamarin.Forms.Labs.Sample/Pages/Services/ExtendedDeviceInfoPage.cs
Création exact, pouce par pouce cadre sur toutes les plateformes indépendamment des propriétés d'affichage:
https://github.com/XForms/Xamarin-Forms-Labs/blob/master/samples/Xamarin.Forms.Labs.Sample/Pages/Services/AbsoluteLayoutWithDisplayInfoPage.cs
Pour obtenir les informations sur l'appareil soit mis à votre DI résolveur ou utiliser un statique conteneur. Tous les 3 plates-formes ont un singleton appareil appels statiques CurrentDevice propriété:
Mise à jour: Vous pouvez utiliser Xamarin.Essentials package nuget pour cela et pour bien d'autres raisons.
Vieille réponse:
Il y a un moyen facile d'obtenir la largeur de l'écran et de la hauteur en
Xamarin.Forms
et l'accès à l'échelle mondiale à partir de partout dans votre application. J'aimerais faire quelque chose comme ceci:1. Créer deux membres du public dans votre Application.cs:
2. Définir les valeurs de votre
MainActivity.cs
(Android) ou votreAppDelegate.cs
(iOS):Android:
iOS:
Si vous utilisez xamarin forms, vous pouvez trouver la largeur et la hauteur de l'écran actuel dans la bibliothèque de classes portable(pcl) comme ci-dessous.
Pour la Largeur que vous utilisez ce pcl,
Pour la taille, vous pouvez le faire en mode d'émulation pcl,
Recette
Créer un nouveau Xamarin.Application Android nommée ScreenSize.
Edit Principal.axml de sorte qu'il contienne deux TextViews:
Modifier Activity1.cs, modifiez le code dans OnCreate suivantes:
![entrez la description de l'image ici][1]
private int ConvertPixelsToDp(float pixelValue)
{
var dp = (int) ((pixelValue)/Ressources.DisplayMetrics.La densité);
retour dp;
}
Exécuter l'application. Selon l'appareil, il affichera l'écran de la hauteur et la largeur. La capture d'écran suivante est à partir d'un Galaxy Nexus:
[lien image] http://i.stack.imgur.com/TQhba.png
Dans votre Application fichier définir un public statique de la variable
Il faut initialiser la variable à la fois sous IOS et Android avant d'appeler l'App constructeur. Pour IOS, en FinishedLaunching méthode
et Pour Android, en fonction OnCreate
Mise à jour pour les futurs développeurs d'essayer de faire ce qui, soit n'ont pas regardé ou raté. La Page de la classe hérite de VisualElement, qui a désormais deux propriétés (qui se trouvent être peut être liée pour une utilisation dans le code XAML):
dans votre page code-behind, vous faites juste quelque chose comme:
si vous avez besoin de savoir si c'modifications, utilisez la SizeChanged événement:
ref: Microsoft Docs