我有一个Canvas,我动态添加了一些形状。我现在想在画布上添加Image
。
如果我从Image
添加Canvas
,但是当我尝试在Image
上添加Canvas
时,图片不会显示,那么一切正常。也许它隐藏在Canvas
上绘制的形状背后。
我的问题是如何将Image
带到Canvas
前面。
这是我添加图片的方式:
string strUri2 = String.Format(@"pack://application:,,,/MyFirstWPF;component/Images/tt.jpg");
image1.Source = new BitmapImage(new Uri(strUri2));
注意 - >在添加图像之前添加画布上的形状。
答案 0 :(得分:2)
你可以这两种方式:
Image
的Z-Index,将其置于Canvas
Canvas
与Image
元素重叠的容器(例如Grid
)如果你使用Canvas的Z-Index方法然后正确地做你必须关注Canvas上其他元素的Z-Index ....因为你必须选择一个Z-Index值比其他一切都要大。
您可以猜测,只需选择一个您认为其他元素永远无法达到的大型Z-Index,或者您可以扫描Canvas的子项并找到所使用的最高Z-Index,以便您可以总是设置一个更高的....所以你可以确保你“带到前面”的形象。
(这可能与你说“Out of Canvas”时所用的相同)
还有一种替代方法,这意味着您不必显式地使用Z-Index,只需使用网格并将Canvas和Image指定为子级......它们将占据相同的单元格,因此彼此重叠。 ..作为最后一个孩子的图像将具有最大的隐含Z指数。
<Grid>
<Canvas x:Name="mycanvas"/>
<Image x:Name="image1/>
</Grid>
答案 1 :(得分:1)
只需使用
myCanvas.Children.Insert(0,image1);
答案 2 :(得分:0)
您可以将图片的z-index
设置得比其他形状更高,以将其置于其他形状之上 - Canvas.SetZIndex(image1, (int)5);
请参阅以下链接,详细了解z-index - Controlling z-order,Z-Index of Canvas