2016-04-26 5 views
2

Я попытался создать переход для моей всплывающей сетки (usercontrol). Это хорошо работает, но только один раз, после этого, переход не работает, кроме того, я havn't обратный переход, когда я закрываю сетку сПереходы с сетью UWP

Xaml UserControl:

<UserControl Visibility="Collapsed"> 

    <Grid Background="red"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 

     <Grid.Transitions> 
      <TransitionCollection> 
       <EdgeUIThemeTransition Edge="Bottom"/> 
      </TransitionCollection> 
     </Grid.Transitions> 

     <StackPanel> 
      <Button Content="Close" Click="close_Click"/> 
     </StackPanel> 
    </Grid> 
</UserControl> 

C# UserControl:

public sealed partial class MyUserControl1 : UserControl 
{ 
    public MyUserControl1() 
    { 
     this.InitializeComponent(); 
    } 

    private void close_Click(object sender, RoutedEventArgs e) 
    { 
     Visibility = Visibility.Collapsed; 
    } 
} 

Xaml Страница:

<Page> 
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
     <local:MyUserControl1 x:Name="popUp"/> 
     <Button Content="Open" Click="Open_Click"/> 
    </Grid> 
</Page> 

C# Page:

private void Open_Click(object sender, RoutedEventArgs e) 
{ 
    popUp.Visibility = Visibility.Visible; 
} 

Я думаю, проблема в видимости, но мне нужно, чтобы показать и скрыть мой контроль, следует ли использовать визуальное состояние в своем usercontrol?

+0

Кажется, что «EdgeUIThemeTransition» загружается один раз, переход wii загружается при удалении «MyUserControl1», а затем добавляет его на страницу. Также вы можете изменить другой переход, который можно добавить в 'Storyboard'. –

+0

Должен ли я создать раскадровку для видимости? если да, то как активировать его, когда я устанавливаю видимость моего UserControl – sasukaru

ответ

0

Теперь я использую:

C# UserControl (удалить UserControl):

private void close_Click(object send, RoutedEventArg e) 
{ 
    ((Panel)this.Parent).Children.Remove(this); 
} 

Xaml UserControl (я установить переход здесь)

<UserControl.Transitions> 
    <TransitionCollection> 
     <EdgeUIThemeTransition Edge="Botom"/> 
    </TransitionCollection> 
</UserControl.Transitions> 

C# страница (создать пользовательский элемент управления):

MyUserControl cont = new MyUserControl(); 
MygridName.children.Add(cont); 
+0

Получаете ли вы как вперед, так и назад (выходящую) анимацию при использовании этого подхода? – Corcus

0

В заявлении click_Close вы пытались с помощью

this.Visibility = Visibility.Collapsed; 

, потому что, как я читаю это, как представляется, не быть адресный элемент прямо сейчас.

Я признаю, что я не тестировал это - это то, что я заметил и, надеюсь, это работает и экономит вам некоторую кодировку. (Я знаю только достаточно C#, чтобы быть опасным> = D)

+0

да :(это визуальная студия, которая уведомит меня об удалении «этого», и у меня есть тот же результат, что и «этот» и «белый», но спасибо за ваш ответ ^^ – sasukaru

+0

:(Данг, я попробую что-нибудь позже - надеюсь, вы найдете ответ хотя. – trippedOverXaml

+0

Нет, я не нашел ответа, использование переходов, вероятно, не так, но я не знал, как получить такой же результат без it.: ( – sasukaru