动态添加控件不渲染,silverlight

时间:2011-07-29 15:40:41

标签: silverlight controls rendering dynamic

你好我有一个名为Layout的画布。我想在后面的代码中添加一些孩子。这是代码。

private void AddItem(int TruePosition, int CurrentPosition, string ImageFileName)
{
    Image img = new Image();
    img.Source = new BitmapImage(new Uri(@"/Images/" + ImageFileName, UriKind.Relative));
    img.Width = 100.0;
    img.Height = 400.0;
    img.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
    img.Stretch = Stretch.None;

    Border b = new Border();
    b.SetValue(Canvas.TopProperty, 200.0);
    b.SetValue(Canvas.LeftProperty, (double)CurrentPosition);
    b.SetValue(Canvas.ZIndexProperty, 1);
    b.Background = new SolidColorBrush(Colors.Blue);

    b.MouseMove += new MouseEventHandler(Border_MouseMove);
    b.MouseLeftButtonDown += new MouseButtonEventHandler(Border_MouseLeftButtonDown);
    b.MouseLeftButtonUp += new MouseButtonEventHandler(Border_MouseLeftButtonUp);

    b.Child = img;
    Layout.Children.Add(b);
    UpdateLayout();
}

图像Uri可能很好,因为如果我尝试仅添加边框(没有图像),它仍然无法渲染。此外,我从按钮单击事件处理程序调用此AddItem函数,因此初始化不应该是一个问题。可能我在这里错过了一些非常基本的东西。欢迎任何想法,谢谢你的帮助。

更新:好的我可能是浏览器缓存有问题,添加了边框,但边框中的图像没有显示。在Visual Studio项目中,我有一个带有图像文件的Images目录。我设置错误的路径了吗?

1 个答案:

答案 0 :(得分:0)

所以,现在我被允许回答。那是一个新手的错误。 不需要第一个/之前的图像。新的Uri(@“Images /”+ ImageFileName,UriKind.Relative)是正确的。