在运行时使用XamlReader加载 Xaml 标记的片段。
这是一个例子:
void AddDynamicContent(string path, Panel panelToAddContent)
{
DirectoryInfo di = new DirectoryInfo(path);
if (di.Exists)
{
FileInfo[] fileInfos = di.GetFiles("*.xaml");
foreach (FileInfo fi in fileInfos)
{
XmlReader xmlReader = XmlReader.Create(fi.FullName);
FrameworkElement dynamicContent = (FrameworkElement)XamlReader.Load(xmlReader);
panelToAddContent.Children.Add(dynamicContent);
}
}
}
...
AddDynamicContent(@"c:\temp\controls", myStackPanel);
确保在标记定义中省略类声明部分 (x:Class="") 否则会出现异常。请注意,CodeBehind 不会执行,它只是创建一个简单的 UIElement。