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

时间:2017-09-27 03:25:22

标签: c# xaml windows-phone-8 uwp uwp-xaml

我认为这是非常基本的,但我需要从elements.xaml中获取元素并将其作为主网格" MainGrid"的子项放在Template.xaml中。这可以用c#或XAML来完成,但它并不重要。

这是elements.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'/>

这是Template.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之下。你们能帮忙吗?

编辑:elements.xaml位于applicationdata文件夹中,位于C:\ Users \ USERNAME \ AppData \ Local \ Packages \ PACKAGENAME \ LocalState

谢谢, 拉詹

1 个答案:

答案 0 :(得分:0)

尝试使用 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); ,它可以加载XAML字符串内容,并将字符串转换为相应的XAML元素。

这是一个简单的例子:

XamlReader

此示例将TextBlock带到UI。

有关display:flex的详情,请访问XamlReader Class