我尝试为我的弹出网格(用户控件)创建一个过渡效果。它起作用了,但只有一次,之后,过渡效果就不起作用了。此外,我关闭网格时没有反向过渡效果。
Xaml用户控件:
Xaml用户控件:
<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#用户控件:
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#页面:
private void Open_Click(object sender, RoutedEventArgs e)
{
popUp.Visibility = Visibility.Visible;
}
我认为问题出在“可见性”上,但是我需要显示和隐藏我的控件,我应该在我的用户控件中使用视觉状态吗?
EdgeUIThemeTransition
只加载一次,当移除MyUserControl1
然后再将其添加到页面时,过渡效果会加载。您还可以更改另一个可以添加到Storyboard
中的过渡效果。 - Jayden