1


1

実行時にXAML文字列からWPFグリッドコントロールを追加する方法

以下のようなグリッドXAMLがあるとします-例えば。 メソッドから返された生成された文字列。


私がしたいのは、そのようなグリッドを作成し、実行時にスタックパネルに追加することです。以下のようなコードです。

XmlReader xr = XmlReader.Create(input: new StringReader(g.xaml));
var control = XamlReader.Load(xr) as Grid;
this.stackPanel.Children.Add(control);

私が使用するフォームは次のとおりです。


しかし、「不明なタイプ「グリッド」を作成できません」というエラーが表示されます。 私はボタン/テキストブロックを追加することでこれを成功させましたが、ネストされたコントロールを持つグリッドを追加できませんでした。

その方法を知っている場合は、共有してください。 すべてのヘルプを歓迎し、非常に感謝しています!

1 Answer


4


ロードするxamlの最初のグリッド要素に「xmlns = 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'」を追加します。 これは、wpf名前空間をxamlのデフォルト名前空間として宣言します。 その後、XamlReader.Loadは、どのようなコントロールであるかを確認できます。