Предположим, у нас есть сетка XAML, как показано ниже - например. сгенерированная строка, возвращаемая методом.Как добавить элемент управления WPF из строки XAML во время выполнения?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width='*' />
<ColumnDefinition Width='*' />
</Grid.ColumnDefinitions>
<TextBlock Text='id' Grid.Column='0'/>
<Rectangle Fill='Black' Grid.Column='1' />
</Grid>
То, что я хочу сделать, это создать такую сетку и добавляют к StackPanel во время выполнения, коды, аналогичные, как показано ниже.
XmlReader xr = XmlReader.Create(input: new StringReader(g.xaml));
var control = XamlReader.Load(xr) as Grid;
this.stackPanel.Children.Add(control);
Форма я использую:
<Window x:Class='AllRibbonBrushes.MainWindow'
xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
Title='MainWindow' Height='223' Width='533'
Loaded='Window_Loaded'>
<ScrollViewer>
<StackPanel Name="stackPanel">
<!--The runtime grid need to be added here-->
</StackPanel>
</ScrollViewer>
</Window>
Но я получаю ошибку Cannot create unknow type 'Grid'
. Я преуспеваю в этом, добавляя кнопку/текстовый блок, но не смог добавить сетку с вложенными элементами управления.
Если вы знаете, как это сделать, пожалуйста, поделитесь. Все приветствуются и очень ценятся!