private void mvm_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == "IsLeft")
{
MainViewModel mvm = (MainViewModel)this.DataContext;
double to = 0;
double from = 0;
if (mvm.IsLeft && !_isLeft)
{
to = -MainGrid.ColumnDefinitions[0].Width.Value;
}
else if (!mvm.IsLeft && _isLeft)
{
from = -MainGrid.ColumnDefinitions[0].Width.Value;
}
if (_isLeft != mvm.IsLeft)
{
DoubleAnimation d = new DoubleAnimation()
{
BeginTime = new TimeSpan(0),
Duration = new Duration(TimeSpan.FromMilliseconds(400)),
From = from,
To = to,
FillBehavior = FillBehavior.HoldEnd,
EasingFunction = new QuadraticEase()
};
Storyboard s = new Storyboard();
s.Children.Add(d);
Storyboard.SetTarget(d, MainGrid);
Storyboard.SetTargetProperty(d, "(UIElement.RenderTransform).(TranslateTransform.X)");
s.Begin();
_isLeft = !_isLeft;
}
}
}