将标记扩展速记语法转换为完整的 xml 形式



>我有 XAML 字符串,如下所示:

    <Button Content={Binding Name} Style={StaticResource ButtonStyle}/>

我如何在代码中将所有大括号转换为元素,例如:

    <Button>
      <Button.Content>
         <Binding Path="Name">
      </Button.Content>
      <Button.Style>
         <StaticResource ResourceKey="ButtonStyle"/>
      </Button.Style>
    </Button>

您可以使用我认为(!)默认不会保存速记变体的XamlReaderXamlWriter。请参阅 http://msdn.microsoft.com/en-us/library/system.windows.markup.xamlreader(v=vs.110).aspx

其中包括一个示例

// Create the Button.
Button originalButton = new Button();
originalButton.Height = 50;
originalButton.Width = 100;
originalButton.Background = Brushes.AliceBlue;
originalButton.Content = "Click Me";
// Save the Button to a string. 
string savedButton = XamlWriter.Save(originalButton);
// Load the button
StringReader stringReader = new StringReader(savedButton);
XmlReader xmlReader = XmlReader.Create(stringReader);
Button readerLoadButton = (Button)XamlReader.Load(xmlReader);

上面保存的按钮看起来像

 <Button Background="#FFF0F8FF" Width="100" Height="50" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">Click Me</Button>

最新更新