XAMLパーサーは、Foreground = "Red"の文字列 "Red"をSolidColorBrushに変換するにはどうすればよいですか?私はWPF XAMLパーサーが文字列をブラシに変換するために常に使用することを覚えていますが、TypeにはSystem.ComponentModel.TypeConverterが定義されています。特定のプロパティのattibuteのように単一の文字列を解析するために使用できるXamlReader.Load(有効なxml文字列が必要です)以外のXAML APIはありますか?XAML属性として文字列を手動で解析します
3
A
答えて
-1
私はあなた自身でこれを利用できると信じています。 XamlReaderは、対象の型(文字列を適用する必要があるプロパティの型)を認識します。そのプロパティの型のTypeConverterを登録します。
EDITこれはあなたのために動作します、それはSolidColorBrush
に来るとき:
SolidColorBrush
を見ると
var colorString = ...;
var converter = new System.Windows.Media.BrushConverter();
var brush = (SolidColorBrush)converter.ConvertFromString(colorString);
、XamlReader
内のデシリアライズを行う魔法が知られている種類の周りに内部APIを使用していますようです。これを処理するために独自の型を登録できるかどうかはわかりません。
0
XAMLパーサー(WPF用)は実際に指定されたプロパティまたはプロパティタイプの型変換器を実際に使用します。いくつかのハードコーディングされたショートカットがありますが、それらはパフォーマンスのためのものであり、セマンティクスを変更しません。パーサーは、属性情報を使用するだけで、パーサーのセマンティクス(たとえば、BlendとCiderの機能)を複製できます。
多くの型変換がXAML解析のコンテキストでのみ機能するため、XAMLとまったく同じ値を変換するAPIはありません。たとえば、タイプコンバータは、XAMLファイルで定義された名前空間(値がXMLファイルのどこにあるかによって変わります)と、ファイルの他のアンビエント情報ベースURIベースを参照できます。これらは、XAMLファイルが解析されている場合にのみ実際に適用されます。
最も近いのは、タイプ記述子からプロパティのプロパティ記述子を要求し、Converterプロパティを使用することです。適切な属性をスキャンして正しいタイプコンバータを作成します。
関連する問題
- 1. 手動で文字列を解析する
- 2. JSON文字列を解析します。
- 3. 文字列を解析して文字列のコマンドライン引数を解析しますか?
- 4. 配列として配列のような文字列を解析します。
- 5. javascriptを使用してXML文字列を解析します。
- 6. 文字列解析とマッチングアルゴリズム
- 7. Groovyで文字列を解析していますか?
- 8. SQL select文で文字列を解析します
- 9. 解析文字列
- 10. 解析文字列
- 11. 文字列を一重引用符でJSONとして解析しますか?
- 12. xmlとしてUTF-16でエンコードされた文字列を解析します。
- 13. 文字列値を属性として使用する
- 14. この文字列をDateTimeとして解析する方法
- 15. Java:文字列を解析して「用語」に分解する
- 16. 文字列と変数をディレクティブ属性に渡します。
- 17. "yyyy"という形式の文字列を解析します。
- 18. djangoからアンドロイドの文字列を解析しています
- 19. StringOutOfRangeException文字列配列を介して属性にアクセスしていますか?
- 20. C I/Oと文字列解析が正しく動作しません
- 21. Freemarkerのは、JSONとして文字列を解析
- 22. E4X:文字列を式の属性名として使用しますか?
- 23. Rubyで文字列を解析してデータベースに保存する
- 24. Javascript:現地時間帯としてDateに文字列を解析します
- 25. ColdFusion、タブ区切り文字列を解析しようとしています
- 26. 手書き文字(英字、漢字など)解析と修正
- 27. mySQLの文字列が、手動で指定した同じ文字列と一致していますか?
- 28. 配列を文字列に解析しますか?
- 29. JavaCCで文字列を解析する
- 30. haskellで文字列を解析する
はい、これは私がそれをやり直す方法です。しかし、私は、XamlReaderが文字列を解析するために常にTypeConvertersを使用するわけではないことに気付きました。したがって、XamlReaderは、これらの型変換器とは別にパースするためのロジックをさらに持たなければなりません。私の質問はどこかにAPIとして公開されていますか? – bitbonk