Quelle coïncidence, je devais le faire plus tôt aujourd'hui. Les doubles qualifiés finissent par passer par une conversion de facteur basée sur l'unité que vous leur donnez, mais dans le cadre de LengthConverter
.
LengthConverter lc = new LengthConverter();
string qualifiedDouble = "10pt";
double converted = lc.ConvertFrom(qualifiedDouble);
Autre:
double original = 10.0;
double converted = original * 1.333333333; // px-to-pt conversion
Cela transformera "10pt" à 13,3333333, par exemple. Vous pouvez également utiliser les facteurs de conversion fournis par l'article, mais je préfère utiliser ce qui précède car les facteurs sont intégrés dans la classe.
Modifié: En réponse aux commentaires sur les chaînes ...
conversion de chaîne est parfaitement logique pour ce qu'il était destiné. Ils utilisent XAML car il est beaucoup plus facile d'exprimer certaines choses en XAML qu'en C# ou VB. En XAML, toutes les valeurs sont des chaînes, donc TypeConverter
est automatiquement sélectionné pour convertir la chaîne en type cible. FontSizeConverter
par exemple, appelle une méthode statique interne sur LengthConverter
. (Vous pouvez également instancier FontSizeConverter
à la place.) Il existe également des convertisseurs pour GridLength
comme "4 *" et Width
comme "Auto". Ou, comme je l'ai dit, vous pouvez créer votre propre classe pour convertir sans chaînes.
This article recommande, pour le code-behind, d'utiliser le facteur directement, donc j'ai fourni un autre exemple ci-dessus.
Édité ma réponse avec un peu plus d'infos, et cette chose "10px". –