列表框作为WrapPanel:如何使我点击“pop”作为新窗口的项目?

时间:2011-12-23 11:56:10

标签: wpf animation

我有ListBox,其WrapPanel为ItemsPanelTemplate。我修改了ItemTemplate,以便我的项目显示为Tiles。

到目前为止,非常好。

我现在遇到的问题是,当我点击ListBox的一个项目时,我想要一个能让项目长大的动画,然后转到屏幕的中心,这样就行动了就像一个模态窗口,我可以在其中编辑我点击的项目的内容。

我怎样才能做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:0)

我通常使用my own custom popup control来做这种事情。它有一个内置动画,可以在弹出时将Popup扩展为完整大小,Popup是可视树的一部分,因此您可以在视觉树中随时放置它

<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>