UWP 网格过渡
UWP Grid Transitions
我试图为我的弹出式网格(用户控件)创建一个过渡。
它运行良好,但只有一次,之后,转换不起作用,此外,当我关闭网格时,我没有反向转换
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;
}
我认为问题在于可见性,但我需要它来显示和隐藏我的控件,我应该在我的用户控件中使用视觉状态吗?
在click_Close语句中你试过使用
this.Visibility = Visibility.Collapsed;
因为我阅读它的方式,现在似乎没有目标元素。
我承认,我还没有对此进行测试 - 这只是我注意到的,希望它能起作用并为您节省一些编码。 (我对 C# 的了解还不够 >=D )
现在我使用:
C# 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);
我试图为我的弹出式网格(用户控件)创建一个过渡。 它运行良好,但只有一次,之后,转换不起作用,此外,当我关闭网格时,我没有反向转换
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;
}
我认为问题在于可见性,但我需要它来显示和隐藏我的控件,我应该在我的用户控件中使用视觉状态吗?
在click_Close语句中你试过使用
this.Visibility = Visibility.Collapsed;
因为我阅读它的方式,现在似乎没有目标元素。
我承认,我还没有对此进行测试 - 这只是我注意到的,希望它能起作用并为您节省一些编码。 (我对 C# 的了解还不够 >=D )
现在我使用:
C# 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);