向StackPanel里动态添加控件出现“值不在预期的范围内”错误

gk06211 2009-08-25 08:28:30
我的开发环境是vs2008,silverlight3
想实现一个stackpanel里面动态添加多个控件的功能,
TextBlock tb = new TextBlock();
tb.Text = "名称";
dddd.Children.Add(tb);
dddd是一个stackpanel
可总提示值不在预期的范围内的错误
请问该如何解决呢
...全文
1621 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingjunli 2009-08-26
  • 打赏
  • 举报
回复
代码如下一切正常:
   <Grid x:Name="LayoutRoot" Background="Snow">
<StackPanel x:Name="dddd"></StackPanel>
</Grid>
 TextBlock tb;
Brush brush;
for (int i = 0; i < 5; i++)
{
brush = new SolidColorBrush(Color.FromArgb(255, (byte)i, (byte)(10+i), 200));
tb = new TextBlock();
tb.SetValue(TextBlock.ForegroundProperty, brush);
tb.Text = "控件" + i;
tb.Width = 100;
tb.Height = 50;
dddd.Children.Add(tb);

}
zhuzhi 2009-08-26
  • 打赏
  • 举报
回复
TextBlock tb = new TextBlock();
tb.Text = "名称";
dddd.Children.Add(tb);
是不是放在循环里面呢,这是微软的一个BUG,单个这样的语句应该不会报错误。解决方案是不要在循环中设置子属性和添加控件。要设置子属性也用 .SetValue()的方式。
gk06211 2009-08-26
  • 打赏
  • 举报
回复
谢谢几位的回复,解决了我的问题
jv9 2009-08-25
  • 打赏
  • 举报
回复

TextBlock _textBlk = new TextBlock();
_textBlk.SetValue(NameProperty, "textBlock1");
_textBlk.Text = "Hello";
this.Children.Add(_textBlk);


这样就可以了。

8,756

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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