我在自制一个动态曲线的控件,usercontrol中我画了一个canvas,通过dispatchertimer触发向左移动
public void CollectionStart()
{
if (ExitDt)
{
dt.IsEnabled = true;
}
else
{
dt.Interval = TimeSpan.FromMilliseconds(20);
dt.Tick += Dt_Tick;
dt.IsEnabled = true;
ExitDt = true;
}
}
private void Dt_Tick(object sender, EventArgs e)
{
testx = testx - 1;
this.xGrid.Margin = new Thickness(testx, 0, 0, 0);
this.myCanvas.Margin = new Thickness(testx, 0, 0, 0);
}
public void CollectionStop()
{
dt.IsEnabled = false;
}
我通过主窗口调用这两个方法来控制移动的开始和停止
但是我定义的这个控件中的canvas和grid每次都会移动超过边界,并且覆盖到隔壁的控件上
如何才能让控件中的canvas移动到控件自己的边界后,超出的部分消失呢?