开发者

dynamically added control not rendering, silverlight

开发者 https://www.devze.com 2023-03-24 00:57 出处:网络
Hello i have 开发者_如何学运维a canvas with the name Layout. I want to add some childs to it in code behind. Here is the code.

Hello i have 开发者_如何学运维a canvas with the name Layout. I want to add some childs to it in code behind. Here is the code.

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();
}

The image Uri is probably good because if i try to add only the border(without the image) it's still not rendering. Also i call this AddItem function from a button click event handler so initializations should not be a problem. Probably i am missing a very basic stuff here. Any ideas are welcome, thank you for your help.

Update: Ok i had something wrong with the browser cache probably, the border is added, but the image in the border isn't showing up. In the Visual Studio project i have an Images dir with the image files. Am i setting the path to them wrong?


So, now i am allowed to answer it. Well it was a newbie mistake. The first / before Images is not needed. new Uri(@"Images/" + ImageFileName, UriKind.Relative) is correct.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号