首页 > 解决方案 > 以编程方式在 Frame 中插入 XAML

问题描述

所以我希望使用 C# 将 XAML 代码插入到 XAMLFrame中,但我不确定如何去做这件事?我将提供一个示例来说明我正在努力实现的目标。

XAML 示例:

 <Frame x:Name="INPUT"/>

C# 示例:

 var lines = File.ReadLines("example.txt");
 foreach(var line in lines)
 {
     string content = line
     INPUT.Content = //XAML TEMPLATE
 }

因此,对于每一行,我希望根据所使用的行插入一个包含唯一值的模板,因此如果行等于 3,则将 3 个 XAML 模板插入到Frame.

模板的基本示例:

<Label Content=content />

预期的输出将是Frame有 3 个

<Label Content=content />

基本上产生 3 个标签,其中包含来自当前行的字符串。

标签: c#wpfxaml

解决方案


将 ItemsControl 与适当的 一起使用ItemTemplate,其中包含标签,或者更好的是 TextBlock:

<ItemsControl x:Name="itemsControl">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

将 IEnumerable 分配给其ItemsSource属性:

itemsControl.ItemsSource = File.ReadLines("example.txt");

推荐阅读