如何使两个图像与WPF重叠?

时间:2009-01-03 05:16:59

标签: c# wpf .net-3.5

我有以下XAML代码,它显示图片(边框内的图像)和徽标。现在,徽标出现在图片下方。这是预期的,但我的目标是在图片顶部设置徽标(正好在右下角)。 有人知道如何做到这一点吗?我们在WPF中是否有图层?

注意:我绝对需要保留WrapPanel。

<WrapPanel>
    <Border BorderBrush="Gray" BorderThickness="1" Margin="3">
        <Border BorderBrush="White" BorderThickness="3">
            <Border BorderBrush="LightGray" BorderThickness="0.5">
                <Image Source="http://farm1.static.flickr.com/2/1703693_687c42c89f_s.jpg" Stretch="Uniform" />
            </Border>
        </Border>
    </Border>
    <Image Source="http://l.yimg.com/g/images/flickr_logo_gamma.gif.v59899.14" Height="10" />
</WrapPanel>

2 个答案:

答案 0 :(得分:16)

你应该能够按照以下方式做点什么:

<WrapPanel>
    <Grid>
        <Border BorderBrush="Gray" BorderThickness="1" Margin="3">
            <Border BorderBrush="White" BorderThickness="3">
                <Border BorderBrush="LightGray" BorderThickness="0.5">
                    <Image Source="http://farm1.static.flickr.com/2/1703693_687c42c89f_s.jpg" Stretch="Uniform" />
                </Border>
            </Border>
        </Border>
        <Image Margin="5" HorizontalAlignment="Right" VerticalAlignment="Bottom" Source="http://l.yimg.com/g/images/flickr_logo_gamma.gif.v59899.14" Height="10" />
    </Grid>
</WrapPanel>

通过不指定任何行或列,我们的网格将2个项目放在第0行第0列中,并将它们堆叠在彼此之上。第二个图像的水平和垂直对齐设置使其显示在右下角,我为第二个图像添加了一个边距以使其稍微抬起,否则它位于我认为不是您想要的边框上?

答案 1 :(得分:1)

将您的图片和徽标放在Canvas元素中,并根据需要定位它们(​​Canvas.Top,Canvas.Left等)。