【问题标题】:creating a view within a custom control to hide parts在自定义控件中创建视图以隐藏部件
【发布时间】:2011-02-24 17:48:00
【问题描述】:

我正在为 Silverlight(特别是 wp7)创建自定义 Silverlight 控件。我的控件主要是一个按钮,当有人点击按钮时,我想为一个高高的矩形设置动画,其中填充了从按钮后面飞出的其他内容。

问题是当我出来时,我不知道如何隐藏或只绘制这个矩形的一部分。例如,当这个矩形出现一半时,只有上半部分显示,其余部分隐藏。我怎样才能做到这一点而不必编写一些复杂的代码?大概我只需要能够定义某种“视图”,其中只有这个视图内的东西才会呈现到屏幕上。

想法?任何帮助表示赞赏!

【问题讨论】:

    标签: silverlight windows-phone-7


    【解决方案1】:

    您可以使用 VisualStateManager 为您的视图定义可能的视觉状态。此外,您可以定义这些状态(包括动画)之间的转换。在按钮的 Click 事件处理程序中,您需要告诉 VisualStateManager 转换到不同的状态 - 就完成了。

    http://msdn.microsoft.com/en-us/library/system.windows.visualstatemanager.gotostate%28v=vs.95%29.aspx

    这在您的视图后面的代码中可能看起来像这样:

    void OnClick(object sender, RoutedEventArgs e)
    {
        VisualStateManager.GoToState(this, "StateName", true);
    }
    

    为了轻松定义动画,您可以使用 Expression Blend 4

    【讨论】:

      【解决方案2】:

      为了确保只显示父容器内的动画矩形部分,而在此之外不显示任何内容,您需要能够将父容器的子对象剪辑到其边界。不幸的是,Silverlight 中没有 ClipToBounds 属性,但您可以使用 Colin Eberhardt 的 clipping attached behavior 来达到相同的效果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-02
        • 2011-12-31
        • 1970-01-01
        • 1970-01-01
        • 2012-06-21
        • 2012-02-12
        • 2012-07-28
        相关资源
        最近更新 更多