定义Silverlight图像的坐标

时间:2014-03-31 19:33:56

标签: c# silverlight

我想在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);

2 个答案:

答案 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>