Silverlight: как рисовать изображения динамически? - PullRequest
0 голосов
/ 19 февраля 2010

s.jpg добавлено в решение с помощью BuildAction == Resource.

XAML

<UserControl x:Class=...>
    <Canvas x:Name="LayoutRoot">            
    </Canvas>
</UserControl>

CS

Image Model = new Image(); 
Model.Source = new BitmapImage(new Uri("/s.jpg", UriKind.Relative)); 
LayoutRoot.SetLeft(Model, Coor.X); 
LayoutRoot.SetTop(Model, Coor.Y); 
Model.Width = 50; 
Model.Height = 30; 
LayoutRoot.Children.Add(Model);

Вот мой вопрос: где мой образ? Это не появилось на экране, хотя, если я изменю XAML на

<UserControl x:Class=...>
    <Canvas x:Name="LayoutRoot">
        <Image Source="s.jpg"></Image>
    </Canvas>
</UserControl>

Вы можете увидеть это, также если изменить CS на

Ellipse Model = new Ellipse(); 
Model.Fill = new SolidColorBrush(Colors.Gray);
Model.Stroke = new SolidColorBrush(Colors.Blue); 
LayoutRoot.SetLeft(Model, Coor.X); 
LayoutRoot.SetTop(Model, Coor.Y); 
Model.Width = 50; 
Model.Height = 30; 
LayoutRoot.Children.Add(Model);

Я увижу этот эллипс. так в чем проблема?

1 Ответ

0 голосов
/ 19 февраля 2010

Попробуйте:

ImageSource imgSrc = новый BitmapImage (новый Uri ("http://server/path/s.jpg", UriKind.RelativeOrAbsolute));

LayoutRoot.Children.Add (imgSrc); LayoutRoot.UpdateLayout ();

...