private voID add_template_Click(object sender,RoutedEventArgs e) { root.Children.Clear(); foreach(var c in Template_canvas1.Children) { root.Children.Add(c); } }
上面的代码给出错误“无效的 *** 作错误”.
我想将template_canvas1中的子项复制到root canvas.建议?
请参阅以下代码.我创建了一个要复制的UIElements数组,然后在将它们添加到root之前将它们从Template_canvas1中删除.
private voID add_template_Click(object sender,RoutedEventArgs e){ var childrenList = Template_canvas1.Children.Cast<UIElement>().ToArray(); root.Children.Clear(); foreach (var c in childrenList) { Template_canvas1.Children.Remove(c); root.Children.Add(c); }}
还有一个选项,如果您不想从Template_canvas1中删除项目,则可以创建UIElements的深层副本.另请参阅以下内容,我不从Template_canvas1中删除项目:
private voID add_template_Click(object sender,RoutedEventArgs e){ root.Children.Clear(); foreach (UIElement child in Template_canvas1.Children) { var xaml = System.windows.Markup.XamlWriter.Save(child); var deepcopy = System.windows.Markup.XamlReader.Parse(xaml) as UIElement; root.Children.Add(deepcopy); }}总结
以上是内存溢出为你收集整理的c#将canvas的所有子项复制到另一个画布全部内容,希望文章能够帮你解决c#将canvas的所有子项复制到另一个画布所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)