Listbox как WrapPanel: Как сделать так, чтобы элемент, который я нажимаю на «pop», появлялся в новом окне? - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть ListBox, с WrapPanel в качестве ItemsPanelTemplate. Я изменил ItemTemplate так, чтобы мои предметы отображались в виде плиток.

Пока все хорошо.

Проблема, с которой я столкнулся сейчас, заключается в том, что, когда я нажимаю на элемент ListBox, я хотел бы иметь анимацию, которая заставила бы этот элемент расти, и перейти в центр экрана, чтобы он действовал. как модальное окно, где я могу редактировать содержимое элемента, на который я нажал.

Как мне этого добиться?

Заранее спасибо

1 Ответ

0 голосов
/ 23 декабря 2011

Я обычно использую свой собственный всплывающий элемент управления для такого рода вещей.Он имеет встроенную анимацию, которая расширяет всплывающее окно до его полного размера, а всплывающее окно является частью визуального дерева, поэтому вы можете поместить его при необходимости в визуальное дерево

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...