2

コントロールから基になるxamlを抽出する方法はありますか。

すなわち。fooBox という名前のテキスト ボックスがあります。実行時にテキストボックスを表すテキストボックスから xaml を取得できますか?

4

3 に答える 3

3

これにより、完全なライフサイクルが表示されます (コントロールから 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);
    }
于 2009-04-23T21:04:21.997 に答える
1

Silverlightについては、 DavidPollによって作成されたSilverlightxamlシリアライザーに言及しているRobRelyeaによるこのブログ投稿に出くわしました。デビッドポールへの大きな称賛。(ダウンロードページ)。

使用法

UiXamlSerializer uxs = new UiXamlSerializer();
string text = uxs.Serialize(this.gridToSerialize);
于 2012-01-15T18:45:48.423 に答える
0

はい - Josh Smith は Mole ツールでこれを行います: http://www.codeproject.com/KB/WPF/MoleForWPF.aspx

于 2009-04-23T21:03:09.783 に答える