我在 Canvas 上放置了几个图像控件。我想在用户单击应用栏按钮时更改所选图像控件的 z order
。
在我的图像控制
类中
public int ImageZOrder
{
get
{
return _imageZOrder;
}
set
{
_imageZOrder = value;
Canvas.SetZIndex(ImageControl, _imageZOrder);
}
}
在应用栏中
private void appBarFront_Click(object sender, EventArgs e)
{
currentCharObject.ImageZOrder += 1;
}
我期望看到所选图像立即被带到其他图像控件的前面。然而上面的代码不起作用。显然我错过了一些东西。我是否必须使用新的 z 顺序值在 Canvas 上重新绘制图像控件?
更新1
在 XAML 中,我有以下内容。每个图像都作为子项添加到 cvsNote
<Grid x:Name="GridCanvas" Grid.Row="0">
<Canvas x:Name="cvsNote" />
</Grid>
更新2 我只是想补充一点,“图像控件”包含在一个特定的类中,它只是该类的许多属性之一。
最佳答案
您可以在代码中更改 ZIndex。
假设这个xaml:
<Canvas Grid.Row="1" Tap="gridTapped">
<Image x:Name="ImgA" Source="Assets/A.png" />
<Image x:Name="ImgB" Source="Assets/B.png" />
<Image x:Name="ImgC" Source="Assets/C.png" />
</Canvas>
您可以使用以下内容更改顶部的图像:
private int TopZindex = 10;
private void gridTapped(object sender, GestureEventArgs e)
{
var rand = new Random();
switch (rand.Next(0, 3))
{
case 0:
Canvas.SetZIndex(this.ImgA, ++TopZindex);
break;
case 1:
Canvas.SetZIndex(this.ImgB, ++TopZindex);
break;
case 2:
Canvas.SetZIndex(this.ImgC, ++TopZindex);
break;
}
}
关于c# - 在 Windows Phone 运行时更改图像控件的 z 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618689/