WPF窗口报告拖动后旧的左属性
本文关键字:属性 窗口 报告 拖动 WPF | 更新日期: 2023-09-27 18:02:37
所以我有这个问题,调用DragMove()后,窗口报告其旧的Left
属性,如果DragMove根本没有改变它。
假设窗口的左边当前是100像素,我移动窗口使用DragMove():
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
DragMove();
}
}
之后,我点击一个按钮,显示新的窗口左侧位置:
private void SomeButton_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(Left.ToString());
}
然而,消息框仍然显示'100',好像窗口根本没有移动,尽管它移动了…
我错过了什么?
我发现了这个问题,我正在动画Left
属性,并且由于某种原因,Left
即使在使用DragMove()移动窗口后也会继续报告相同的动画后值。
为了让它工作,我必须从表单中删除动画,一旦它完成,如下所示:
DoubleAnimation _leftAnimation = new DoubleAnimation();
//...animation settings...
_leftAnimation.Completed += delegate(object animSender, EventArgs animE)
{
BeginAnimation(Window.LeftProperty, null);
};
this.BeginAnimation(LeftProperty, _leftAnimation);