private void ApplyTranslationTransform(double x, double y)
{
if (this.FlowDirection == System.Windows.FlowDirection.RightToLeft)
x = -x;
Transform renderTransform = this.RenderTransform;
TransformGroup group = renderTransform as TransformGroup;
MatrixTransform transform2 = renderTransform as MatrixTransform;
TranslateTransform transform3 = renderTransform as TranslateTransform;
if (transform3 == null)
{
if (group != null)
{
if (group.Children.Count > 0)
{
transform3 = group.Children[group.Children.Count - 1] as TranslateTransform;
}
if (transform3 == null)
{
transform3 = new TranslateTransform();
group.Children.Add(transform3);
}
}
else
{
if (transform2 != null)
{
Matrix matrix = transform2.Matrix;
matrix.OffsetX += x;
matrix.OffsetY += y;
MatrixTransform transform4 = new MatrixTransform();
transform4.Matrix = matrix;
this.RenderTransform = transform4;
return;
}
TransformGroup group2 = new TransformGroup();
transform3 = new TranslateTransform();
if (renderTransform != null)
{
group2.Children.Add(renderTransform);
}
group2.Children.Add(transform3);
this.RenderTransform = group2;
}
}
transform3.X += x;
transform3.Y += y;
}