点击左边树节点(treeviewItem)获得treeviewItem的tiem值(绑定的数据值或者tag值),在后台根据这个值对左边userContorl写逻辑就行了。
主要是通过一个DoubleAnimation和RectAnimation动画实现
Width="90"
Height="130"
Background="Blue">
Source="high.png"
Width="90"
Height="125">
Rect="0,0,90,125"
>
private
bool
_Expand
=
true;
public
bool
Expand
{
get
{
return
_Expand;
}
set
{
_Expand
=
value;
Duration
duration
=
new
Duration(TimeSpan.FromSeconds(1));
FillBehavior
behavior
=
FillBehavior.HoldEnd;
DoubleAnimation
translateAnim
=
new
DoubleAnimation();
translateAnim.Duration
=
duration;
translateAnim.FillBehavior
=
behavior;
RectAnimation
clipAnim
=
new
RectAnimation();
clipAnim.Duration
=
duration;
clipAnim.FillBehavior
=
behavior;
double
delta
=
80;
//收缩的大小
if
(_Expand)
//
Expand
{
translateAnim.From
=
-delta;
translateAnim.To
=
0;
clipAnim.From
=
new
Rect(delta,
0,
Thumb.ActualWidth,
Thumb.ActualHeight);
clipAnim.To
=
new
Rect(0,
0,
Thumb.ActualWidth,
Thumb.ActualHeight);
}
else
//Shrink
{
translateAnim.From
=
0;
translateAnim.To
=
-delta;
clipAnim.From
=
new
Rect(0,
0,
Thumb.ActualWidth,
Thumb.ActualHeight);
clipAnim.To
=
new
Rect(delta,
0,
Thumb.ActualWidth,
Thumb.ActualHeight);
}
Translate.BeginAnimation(TranslateTransform.XProperty,
translateAnim);
ClipRect.BeginAnimation(RectangleGeometry.RectProperty,
clipAnim);
}
}
Demo地址
http://pan.baidu.com/s/1gdxHhnX