如何将一些 XAML 片段作为子元素插入到我的 window 中?

How can I insert some XAML snippet in to my window as child element?

我有一些 XAML(作为字符串),如下所示:

 <Grid>
        <TextBlock>some text</TextBlock>
</Grid>

而且我想将它插入到我的 window 中而不在后面的代码中生成它:

 <Window  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Class="BookOnTheFly.MainWindow"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
 <insert xaml snippet here>
    </Grid>
</window>

我的意思是 jQuery append..

在代码中,您可以将元素添加到网格的 Children。像这样

XAML:

<Grid Name="grid">
     <!-- Where your code will be inserted -->
</Grid> 

<Grid Name="toBeInserted">
    <TextBlock>some Text</TextBlock>
</Grid>

代码:

grid.Children.Add(toBeInserted);

注: 如果您要添加的东西已经是另一个元素的子元素,您将得到一个异常。在将其添加到新元素之前,您必须先将其从该元素中删除。

oldContainer.Children.Remove(toBeInserted);

希望对您有所帮助!

你要的是资源。资源是 XAML 代码片段,符合资源字典中的特定要求。资源可以在应用程序、window 或任何框架元素上定义。定义好后,可以通过多种方式引用。

https://blogs.msdn.microsoft.com/wpfsldesigner/2010/06/03/creating-and-consuming-resource-dictionaries-in-wpf-and-silverlight/

编辑:

将我想要的 XAML 代码放入资源目录中:

 <DataTemplate x:Key="insertion">
        <!-- XAML here -->
    </DataTemplate>

并将其用作内容控制中的数据:

<ContentControl ContentTemplate="{StaticResource insertion}"/>