让UserControl从屏幕的一侧“滑出”?

时间:2012-03-28 14:09:40

标签: c# silverlight xaml

我正在使用以下代码将视图注入Grid:

private void OnShowNotesRequested(UserControl view)
        {
            if (view == null) throw new NotSupportedException("View should not be null");

            // Skip first GridRow - this is usually Toolbar
            if (this.AssociatedObject.RowDefinitions.Count > 1)
            {
                view.SetValue(Grid.RowSpanProperty, this.AssociatedObject.RowDefinitions.Count - 1);
                view.SetValue(Grid.RowProperty, 1);
            }

            view.SetValue(Grid.ColumnSpanProperty, this.AssociatedObject.ColumnDefinitions.Count == 0 ? 1 : this.AssociatedObject.ColumnDefinitions.Count);
            view.Width = 500;
            view.HorizontalAlignment = HorizontalAlignment.Right;

            this.AssociatedObject.Children.Add(view);
        }

基本上,我将视图作为孩子添加到网格中。它停靠在右侧。

我想让它看起来像这个视图从右侧滑出并停止。我不知道如何处理它,我该怎么做才能实现这种视觉效果。关于我需要添加的内容和位置的任何指示?也许链接到类似的效果?

我在这里找到了一些动画代码:http://forums.silverlight.net/t/82441.aspx

这是有道理的,但是当我隐藏我的视图时 - 我会将其从视觉树中完全删除:this.AssociatedObject.Children.Remove(view)不确定如何“等待”然后将其删除。

1 个答案:

答案 0 :(得分:1)

看一下Microsofts Expression Blend工具,它专门用于创建这些视觉效果。

你要做的事情可以通过故事板实现,而且非常简单!

基本上,一旦创建了故事板(根据时间(或帧)定义起始位置和结束位置的情况),您可以触发故事板在特定事件被触发时播放。

我知道这不是一个明确的答案,但是这里有一些让你感动的教程:

http://www.silverlightbuzz.com/2009/10/12/animating-with-storyboards-in-blend/ http://www.c-sharpcorner.com/uploadfile/mamta_m/creating-and-using-storyboards-in-blendsilverlight-part-i/ http://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CE4QFjAD&url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fcc295092.aspx&ei=NDRzT42uPNS_8gPrz6xW&usg=AFQjCNGwT_hEkwGBXzS3holaM1g85I0S5Q&sig2=dSDJ6lL0CR3-nIR7WQ739g

谢谢,祝你好运!