偶然にも、私は今日これをやらなければなりませんでした。修飾されたダブルスは、あなたがそれを与えるユニットに基づいて、しかしLengthConverter
の一部として因子変換を経ることになります。
LengthConverter lc = new LengthConverter();
string qualifiedDouble = "10pt";
double converted = lc.ConvertFrom(qualifiedDouble);
代替:
double original = 10.0;
double converted = original * 1.333333333; // px-to-pt conversion
これは、例えば、13.3333333に "10ptの" を変換します。記事で提供されている換算係数を使用することもできますが、因子がクラスに組み込まれているため、上記を使用することをお勧めします。
編集:文字列についてのコメントに反応してを...
文字列変換は、それがために意図されたもののために完璧な理にかなっています。 XAMLではC#やVBよりもXAMLで表現する方がはるかに簡単なので、XAMLを使用します。 XAMLでは、すべての値が文字列なので、文字列をターゲットタイプに変換するために自動的に選択されたのはTypeConverter
です。たとえばFontSizeConverter
は、LengthConverter
の内部静的メソッドを呼び出します。 (代わりにFontSizeConverter
をインスタンス化することもできます)GridLength
の場合は「4 *」、Width
の場合は「自動」のようなコンバーターもあります。または、私が言ったように、あなたは文字列なしで変換する独自のクラスを作成することができます。
This articleは、コードビハインドのために因子を直接使用することを推奨しているので、私は上記の別の例を提供しました。
私の答えをもう少し詳しく編集し、その "10px"ものを編集しました。 –