在银光中飞溅(C#)的Popin(滑落)效果

时间:2012-02-24 21:09:41

标签: c# silverlight silverlight-5.0

如何在飞行中获得Silverlight中的popin效果(在c#中,而不是在XAML中)。通过popin效果效果我的意思是:

假设我有两个容器(一个容器可以是网格,窗格等)垂直对齐,而顶部有一个按钮。在按下按钮时,另一个容器将从顶部容器中出现(到目前为止是不可见的)并且将缓慢地向下滑动已经存在的下面的容器。

我需要代码语法,而不是任何现有的自定义或标准组件。

谢谢...

1 个答案:

答案 0 :(得分:0)

您描述的场景看起来像'DataState behavior'的作业。我通常在'默认状态'下创建2'状态',例如:NormalState('默认'状态)和'WorkingState'(包括'Busy'图标和我的淡出屏幕一点点)或甚至使用FluidMove或如你的例子中的Styoryline。然后创建一个简单的public bool IsWorking {get;set;}属性并将'DateState'行为附加到它的布尔答案。因此,如果IsWorking为'true',则显示/运行'WorkingState',如果'false'则显示'NormalState'。 在GUI / Blend中自动设置非常容易。它遵循MVVM模式和可测试的原则。 状态改变机制具有“TransitState”属性 - 大多数属性都是内置的,但非常灵活。您可以创建一个StoryLine作为'WorkingState'的起点并在那里滑动组件(它是不同的状态,因此您可以设置'Visible'和其他属性,而无需全局更改它或在代码逻辑中管理状态)。您还可以创建独立的Storyline,并在某些从代码上升的事件上运行它,但这又是使用DateState行为的首选方式。