2011-12-23 15 views
0

我有ListBox,WrapPanel作爲它的ItemsPanelTemplate。我修改了ItemTemplate,以便我的項目顯示爲Tiles。Listbox作爲WrapPanel:如何使項目點擊「pop」作爲新窗口?

到目前爲止,這麼好。

我現在的問題是,當我點擊列表框中的一個項目時,需要一個可以使項目長大的動畫,然後轉到屏幕中心,所以它就像一個模式窗口,我可以編輯我點擊的項目的內容。

我該如何做到這一點?

在此先感謝

+0

從[混合SDK FluidMoveBehavior每當](http://www.microsoft.com/download/en/details.aspx?id=10801)可能會有所幫助。 – 2011-12-23 12:41:18

+0

謝謝。確實,它可能有助於將tile的內容移動到位於列表框頂部的網格。但是由於後者的網格是不可見的,除非添加了一些內容,否則有什麼方法可以知道動畫的動畫何時停止,因此我可以使覆蓋網格可見? – Mike 2011-12-23 13:37:30

+0

我不知道... – 2011-12-23 14:43:38

回答

0

我通常使用my own custom popup control對於這種事情。它有一個內置的動畫生長時,這將擴大彈出到全尺寸,且彈出式是視覺樹的一部分,所以你可以把它需要在Visual樹

<Grid x:Name="PopupParent"> 

    <ListBox x:Name="TileListBox"> 
     ... 
    </ListBox> 

    <!-- Popup --> 
    <local:PopupPanel local:PopupParent="{Binding ElementName=PopupParent}" 
         local:PopupPanel.IsPopupVisible="{Binding IsPopupVisible}" 
         Content="{Binding PopupContent}"> 

     <local:PopupPanel.Resources> 
      <DataTemplate DataType="{x:Type local:MyTileViewModel}"> 
       <local:MyTileView /> 
      </DataTemplate> 
     </local:PopupPanel.Resources> 

    </local:PopupPanel> 

</Grid> 
+0

因此,我將顯示每個圖塊一個彈出窗口,並且彈出窗口會從列表框中的圖塊位置開始長大?最終在關閉時長到下一個位置? – Mike 2011-12-24 10:06:03

+0

@Mike你將有一個彈出你的列表框,當你需要顯示一個項目時,你可以將項目設置爲PopupContent並將IsPopupVisible設置爲true。我編輯了代碼示例以將ListBox添加到它應該在的位置。 – Rachel 2011-12-24 16:11:46

相關問題