代码之家  ›  专栏  ›  技术社区  ›  rajap

将XAML文件的内容嵌入到另一个XAML文件中

  •  0
  • rajap  · 技术社区  · 7 年前

    我认为这是非常基本的,但我需要从元素中提取元素。xaml并将其放入模板中。xaml作为主网格“MainGrid”的子网格。这可以用c#或XAML来完成,这并不重要。

    这里是元素。xaml:

    <TextBox Text='' FontSize='25' Grid.Column='0' Grid.Row='1'/>
    <TextBox Text='' FontSize='25' Grid.Column='1' Grid.Row='1'/>
    <TextBox Text='' FontSize='25' Grid.Column='2' Grid.Row='1'/>
    <TextBox Text='' FontSize='25' Grid.Column='3' Grid.Row='1'/>
    

    这是模板。xaml:

    <Grid x:Name="MainGrid" Margin="20" Background="{ThemeResource SystemControlAltMediumLowAcrylicElementMediumBrush}">
        <Grid.RowDefinitions>
            //Defs go here
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            //Defs go here
        </Grid.ColumnDefinitions>
        <TextBlock x:Name="Head00" TextWrapping="Wrap" Text="Scene" FontSize="50" Grid.Column="0" Grid.Row="0"/>
        <TextBlock x:Name="Head10" Text="Characters" FontSize="50" Grid.Column="1" Grid.Row="0"/>
        <TextBlock x:Name="Head20" Text="Page" FontSize="50" Grid.Column="2" Grid.Row="0"/>
        <TextBlock x:Name="Head30" Text="Mic Assignment Number" FontSize="50" Grid.Column="3" Grid.Row="0"/>
    </Grid>
    

    我希望嵌入的XAML在Textblocks下面。你们能帮忙吗?

    谢谢 拉詹

    1 回复  |  直到 7 年前
        1
  •  0
  •   WPInfo    7 年前

    尝试使用 XamlReader ,它可以加载XAML字符串内容,并将字符串转换为相应的XAML元素。

    下面是一个简单的示例:

            string defaultNamespace = "http://schemas.microsoft.com/winfx/2006/xaml/presentation";
            string xaml = "<TextBlock xmlns=\"" + defaultNamespace + "\">Hello, world!</TextBlock>";
            // xaml content will be:
            // <TextBlock xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">Hello, world!</TextBlock>
            var textBlock = XamlReader.Load(xaml) as TextBlock;
            this.rootGrid.Children.Add(textBlock);
    

    本例将把TextBlock带到UI。

    有关的更多信息 XAML阅读器 ,您可以访问 XamlReader Class .