【发布时间】: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