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 に答える