なんて偶然だろう、私は今日早くこれをしなければならなかった。修飾された double は、与えられた単位に基づいて因数変換されますが、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
これにより、たとえば、「10pt」が 13.3333333 に変換されます。この記事で提供されている変換係数を使用することもできますが、係数はクラスに組み込まれているため、上記を使用することをお勧めします。
編集済み:文字列に関するコメントに応えて...
文字列変換は、意図されたものにとって完全に理にかなっています。彼らが XAML を使用するのは、C# や VB よりも XAML で何かを表現する方がはるかに簡単だからです。XAML では、すべての値が文字列であるためTypeConverter
、文字列をターゲットの型に変換するために s が自動的に選択されます。FontSizeConverter
たとえば、 の内部静的メソッドを呼び出しますLengthConverter
。(代わりにインスタンス化することもできます。) "4*"のような s や "Auto" のようなs のFontSizeConverter
コンバーターもあります。または、私が言ったように、独自のクラスを作成して、文字列なしで変換することもできます。GridLength
Width
この記事では、コード ビハインドで要素を直接使用することを推奨しているため、上記の別の例を示しました。