我正在为Silverlight(特别是wp7)创建自定义Silverlight控件。我的控制主要是一个按钮,当有人点击按钮时,我想为一个高大的矩形设置动画,这个矩形充满了从按钮后面飞出的其他内容。
问题是当我出来时,我不知道如何隐藏或只绘制这个矩形的部分。例如,当这个矩形是一半时,只显示上半部分,而其余部分则隐藏。如何在不编写复杂代码的情况下完成此操作?据推测,我只需要能够定义某种“视图”,其中只有此视图中的内容呈现在屏幕上。
思考?任何帮助表示赞赏!
答案 0 :(得分:2)
您可以使用VisualStateManager为视图定义可能的视觉状态。此外,您可以定义这些状态之间的转换(包含动画)。在按钮的Click事件处理程序中,您需要告诉VisualStateManager转换到其他状态 - 您已完成。
这可能在你视图背后的代码中看起来像这样:
void OnClick(object sender, RoutedEventArgs e)
{
VisualStateManager.GoToState(this, "StateName", true);
}
为了轻松定义动画,您可以使用Expression Blend 4
答案 1 :(得分:0)
为了确保只显示父容器中的动画矩形部分,并且除此之外没有任何内容,您需要能够将父项的子项剪切到它的边界。不幸的是,Silverlight中没有ClipToBounds
属性,但您可以使用Colin Eberhardt的clipping attached behavior来达到同样的效果。