【问题标题】:UWP Grid TransitionsUWP 网格过渡
【发布时间】:2016-04-26 20:20:03
【问题描述】:

我试图为我的弹出网格(用户控件)创建一个过渡。 它工作得很好,但只有一次,在那之后,过渡不起作用,此外,我关闭网格时没有反向过渡

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 然后将其添加到页面时,转换wii 加载。您还可以更改另一个可以添加到Storyboard 中的过渡。
  • 我应该为可见性创建一个故事板吗?如果是的话,当我设置我的 UserControl 的可见性时如何激活他

标签: c# xaml grid win-universal-app transitions


【解决方案1】:

现在我使用:

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

【讨论】:

  • 在使用这种方法时,你是否同时获得了前进(进入)和后退(离开)动画?
【解决方案2】:

在 click_Close 语句中你尝试过使用

this.Visibility = Visibility.Collapsed;

因为我阅读它的方式,现在似乎没有目标元素。

我承认,我没有对此进行测试 - 这只是我注意到的,希望它可以工作并为您节省一些编码。 (我知道的 C# 足够危险 >=D)

【讨论】:

  • 是的 :( 是视觉工作室通知我删除“this”,我的结果与“this”和“whitout”相同。但感谢您的回答^^
  • :( dang,我稍后再试——希望你能找到答案。
  • 不,我没有找到答案,使用 Transitions 可能是错误的方式,但我不知道没有它如何获得相同的结果。 : (
猜你喜欢
  • 2023-03-13
  • 2018-07-06
  • 2017-09-16
  • 2015-12-11
  • 1970-01-01
  • 2017-02-11
  • 2014-04-25
  • 1970-01-01
  • 2017-10-10
相关资源
最近更新 更多