2014-10-28 82 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繪製。

相關問題