繁体   English   中英

WPF动画侧边菜单三种尺寸/状态

[英]WPF animate side menu three sizes / states

我需要在WPF中创建具有三种尺寸的菜单。 可见(文本和图标),小(图标)并折叠。 我的想法是采用一个包含两列的网格,一列用于菜单(左),一列用于我的主要内容(右)。 然后,我想通过单击按钮为左列动画设置动画(应该看起来像扩展器)。 现在是我的问题,以便将可见状态的列宽设置为“自动”。 有没有人有想法或示例来实现这一目标?

据我了解,您想设置Grid.Width属性的动画。 Grid.Width和Grid.Height属性的类型为GridLength ,并且WPF没有针对GridLength类型的标准动画类。 “自动”-只是GridLength的特殊值。 因此,您可能需要编写自己的GridLengthAnimation类。 请参见DoubleAnimation类作为示例。 这里有几个链接可以帮助您: https : //marlongrech.wordpress.com/2007/08/20/gridlength-animation/ http://www.codeproject.com/Articles/18379/WPF-Tutorial-Part-Writing-定制动画类

UPD:如果要设置“自动”值的动画,则必须知道左列的最终大小,因为动画的操作范围是“从”和“到”之间的值。 因此,您必须决定-如何绘制中间值? 作为变体-始终开始在自动状态下以展开的菜单和左列开始显示网格,然后在开始动画后(崩溃列)-采取Grid的ActualWidth并将其用作From值,然后在再次开始动画后(扩展列) -使用此保存的ActualWidth作为To值,最后,在完成反向动画时,从GetCurrentValue返回Auto。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM