コントロールから基礎となるxamlを抽出する方法はありますか?基礎となるXamlを抽出する方法はありますか?
IE。私はfooBoxという名前のテキストボックスを持っています。実行時にテキストボックスを表すテキストボックスからxamlを戻すことはできますか?
コントロールから基礎となるxamlを抽出する方法はありますか?基礎となるXamlを抽出する方法はありますか?
IE。私はfooBoxという名前のテキストボックスを持っています。実行時にテキストボックスを表すテキストボックスからxamlを戻すことはできますか?
は、これはあなたに(バックコントロールにコントロールからXAMLへの)完全なライフサイクルを示しています。 あなたが見ることができるように、
string s = XamlWriter.Save(value);
は、あなたが気にかもしれない興味深い部分です。
/// <summary>
/// Clones a given UIElement. Please note that any events, animations, etc
/// on the source item may not carry over to the cloned object.
/// </summary>
/// <param name="value">UIElement to clone.</param>
/// <returns>A shallow clone of the source element.</returns>
public static UIElement CloneUIElement(UIElement value)
{
if (value == null)
{
return null;
}
string s = XamlWriter.Save(value);
StringReader stringReader = new StringReader(s);
XmlReader xmlReader = XmlTextReader.Create(stringReader, new XmlReaderSettings());
return (UIElement)XamlReader.Load(xmlReader);
}
はい - ジョシュ・スミスは、彼のモグラツールでこれを行います。http://www.codeproject.com/KB/WPF/MoleForWPF.aspx
はSilverlightのために、私はデビッド・ポーリングによって作成されたSilverlight xaml serializer呼ばロブRelyeaによってthis blog post渡って走りました。デイヴィッド・ポールの巨大な名声。 (Downloads Page)。
使用
UiXamlSerializer uxs = new UiXamlSerializer();
string text = uxs.Serialize(this.gridToSerialize);
これは完璧に働きました。そして非常に速かった。ありがとう! – JRobbers
これはWPFでのみ機能します。 Silverlightではありません。 :( – Jason