请问为什么usercontrol中的控件不能保存名称?

Csharp小菜鸟 2014-03-28 03:56:50
用WPF画图,然后把画图结果保存,打开保存结果的时候,报错:无法在元素“Canvas”上设置名称属性值“canvas1”。“Canvas”在元素“UserControl1”的范围内,在另一范围定义它时已注册名称。 行“3”位置“13”。

我把UserControl1里面的名称属性值“canvas1”去掉,就能正常显示。UserControl1里面的所有控件都不能起名字,不知道怎么回事,求高手解答!!!!
...全文
96 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Csharp小菜鸟 2014-04-01
  • 打赏
  • 举报
回复
解决了,必须动态生成
Csharp小菜鸟 2014-03-28
  • 打赏
  • 举报
回复
Name="canvas1" Name="image1" Name="textBox1" 这个自定义控件中含有上面三个小控件,这些小控件都不能有名字,不然执行下列语句时候报错 Object obj = XamlReader.Load(ms); 报错:无法在元素“Canvas”上设置名称属性值“canvas1”。“Canvas”在元素“UserControl1”的范围内,在另一范围定义它时已注册名称。 行“3”位置“13”。
Csharp小菜鸟 2014-03-28
  • 打赏
  • 举报
回复
Name="canvas1"
Csharp小菜鸟 2014-03-28
  • 打赏
  • 举报
回复
<UserControl x:Class="WpfControlLibrary1.UserControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="40" Width="100" FlowDirection="LeftToRight" Canvas.Left="0" Canvas.Top="0" Background="White"> <Canvas Height="105" Name="canvas1" Width="111" HorizontalAlignment="Left" VerticalAlignment="Top"> <Image Canvas.Left="25" Canvas.Top="40" Height="50" Name="image1" Stretch="Fill" Width="50" Margin="0" /> <TextBox Canvas.Left="0" Canvas.Top="0" Height="40" Name="textBox1" Width="100" IsReadOnly="True" Cursor="Hand" IsEnabled="True" Focusable="False">hihi</TextBox> </Canvas> </UserControl>
Regan-lin 2014-03-28
  • 打赏
  • 举报
回复
canvas1改另外个名字,可能你有控件命名这个了
公西雒 2014-03-28
  • 打赏
  • 举报
回复
发代码!没代码你说什么

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧