【问题标题】:dynamically added control not rendering, silverlight动态添加控件不渲染,silverlight
【发布时间】:2011-07-29 15:40:41
【问题描述】:

您好,我有一个名为 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 项目中,我有一个带有图像文件的图像目录。我是不是把他们的路径设置错了?

【问题讨论】:

  • 搞定了。不需要第一个 / before Images。 new Uri(@"Images/" + ImageFileName, UriKind.Relative) 是正确的。

标签: silverlight controls rendering dynamic


【解决方案1】:

所以,现在我可以回答了。好吧,这是一个新手错误。 不需要第一个 / before Images。 new Uri(@"Images/" + ImageFileName, UriKind.Relative) 是正确的。

【讨论】:

    猜你喜欢
    • 2021-02-08
    • 2011-08-23
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2017-05-01
    相关资源
    最近更新 更多