2014-10-28 79 views
0

我想将图像移动到WPF中的其他图像上。将图片移动到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"/> 

enter image description here

我想移动到模式1模式2

由于搬过来提前

称为 Canvas.ZIndex
+2

用户附加的属性称为'Canvas.ZIndex'。确保你的第二张图片比第一张图片有更大的价值。 – Blablablaster 2014-10-28 11:20:47

回答

2

使用附加属性。确保你的第二张图片比第一张图片有更大的价值。或者只需在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/> 
+0

就是这样。此外,我会说这是更安全(避免意外),当您将ZIndex设置为一个元素时,将其设置为(每个)同一范围内的其他元素。 – heltonbiker 2014-10-28 11:28:55

+0

在WPF中,该属性是['Panel.ZIndex'](http://msdn.microsoft.com/en-us/library/system.windows.controls.panel.zindex.aspx)(与Silverlight' Canvas.ZIndex'属性)。 – Clemens 2014-10-28 12:34:27

0

没有明确指定了ZIndex,其中子元素的绘制顺序由它们被添加到他们的共同的容器中的顺序来确定。第一个元素是第一个元素,最后一个是最后一个元素。

因此,而不是设置ZIndex的你可能只是改变图像控件的顺序:

<Image x:Name="imgPattern2" ... /> 
<Image x:Name="imgPattern1" ... /> 

现在imgPattern1上面imgPattern2绘制。

相关问题