我想在Silverlight中用代码隐藏画一幅画。因为我会根据Web服务信息从中抽取这么多。但是对于这个,当我使用image.Margin.Left并且顶部给出错误时。我该怎么处理?
Image image = new Image();
image.Source = new BitmapImage(new Uri("wall.png", UriKind.Relative));
image.Height = 120;
image.Width = 120;
image.Margin.Left = 20;
LayoutRoot.Children.Add(image);
答案 0 :(得分:0)
通过这种方式无法更改保证金属性,您可以这样做:
image.Margin = new Thickness(left, top, right, bottom);
答案 1 :(得分:0)
关于在代码中设置边距的另一个答案是100%正确。 因此,这可以作为一种刺激,探索框架为这样一个画廊提供的可能性"。
以编程方式排列图片 - 您可以使用Canvas
:
var image = new Image {
Source = new BitmapImage(new Uri("wall.png", UriKind.Relative)),
Height = 120,
Width = 120
};
Canvas.SetLeft(image, 20);
Canvas.Children.Add(image);
只要您希望图片重叠,您就可以通过Canvas.SetZIndex(image,42)
设置z索引轻松控制哪个图片在顶部(在Grid
中您需要重新排列子订单,这是更麻烦)。
通过ItemsControl
- 开箱即用或自定义排列图片:
<ItemsControl ItemsSource="{Binding Path=WebServiceResult.Images}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate><WrapPanel/></ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<Image Source="{Binding Path=SourceUri}" Height="120" Width="120" Margin="20,0,0,0"/>
</ItemsControl.ItemTemplate>
</ItemsControl>