0

我不知道它将是什么数据......我从 socket(example) 获得 XAML:

    <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="180.036*" />
        <RowDefinition Height="81.964*" />
    </Grid.RowDefinitions>
    <Button Margin="0,5.282,0,0" Name="button1" HorizontalAlignment="Left" Grid.Row="1" Width="109.633" Click="button1_Click">Button</Button>
    <TextBox Grid.Row="0" HorizontalAlignment="Right" Margin="0,13.336,0,0" Name="textBox1" Width="123.358" Height="68.628" VerticalAlignment="Top" />

</Grid>

如何将当前网格内容切换为我在运行期间获得的内容?

4

1 回答 1

0

您可以使用 XamlReader 解析您收到的 xaml:

UIElement root = XamlReader.Parse(xaml) as UIElement;
myGrid.Children.Clear();
if(root != null)
    myGrid.Children.Add(root);

但是,xaml 必须满足一些条件。所有命名空间都必须包含在 XAML 的根节点中。例如:

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <Grid.RowDefinitions>
         ....

此外,XAML 中必须没有无法解决的引用。例如,在您提供的 XAML 中,存在对无法解析的 Click 事件处理程序的引用。您可以在解析代码后添加点击处理程序。

于 2012-07-14T14:14:17.077 回答