我想在WPF中将图像移动到另一个图像上。
但是当我移动image1时,它显示在image2下方而不是image2上方。
Mainwindow.xaml
<Image x:Name="imgPattern1" HorizontalAlignment="Left" Height="170" Margin="523,10,0,0" VerticalAlignment="Top" Width="248"
PreviewMouseDown="imgPattern_PreviewMouseDown"
PreviewMouseUp="imgPattern_PreviewMouseUp"
PreviewMouseMove="imgPattern_PreviewMouseMove"
>
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5" />
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<Image x:Name="imgPattern2" HorizontalAlignment="Left" Height="170" Margin="523,10,0,0" VerticalAlignment="Top" Width="248"/>
我想移动pattern1移动到pattern2
提前致谢
答案 0 :(得分:2)
使用名为Canvas.ZIndex的附加属性。确保您的第二张图片的价值高于第一张图片。或者只需在xaml布局中交换图像,这样第二张图像就成为第一张图像。
<Image x:Name="imgPattern1" HorizontalAlignment="Left" Height="170" Margin="523,10,0,0" VerticalAlignment="Top" Width="248"
PreviewMouseDown="imgPattern_PreviewMouseDown"
PreviewMouseUp="imgPattern_PreviewMouseUp"
PreviewMouseMove="imgPattern_PreviewMouseMove"
>
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5" />
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<Image x:Name="imgPattern2" HorizontalAlignment="Left" Height="170" Margin="523,10,0,0" VerticalAlignment="Top" Width="248" Canvas.ZIndex=2/>
答案 1 :(得分:0)
如果没有明确指定ZIndex
,子元素的绘制顺序取决于它们添加到公共容器的顺序。首先绘制第一个元素,最后一个元素是最后一个元素。
因此,您可以只更改图像控件的顺序,而不是设置ZIndex
:
<Image x:Name="imgPattern2" ... />
<Image x:Name="imgPattern1" ... />
现在imgPattern1
上面显示了imgPattern2
。