0
虽然该标题是一个轻微的谎言,它定义了问题。以编程方式生成的图像没有CanvasLeft
我在一个WPF窗口上有一个图像,其中的根元素是一个Canvas,这个图像有各种附加的事件处理程序,允许我将它拖到窗口周围。
这一切都很好,但是当我添加一个新的图像到画布'的孩子和绑定相同的事件手杖图像不会移动。
现在我已经描述了这一点(所有的处理程序绑定都没问题),并且由于某种原因,我的MouseDownEvent似乎Canvas.GetLeft(((Image)sender))属性总是NaN。
这是我用来创建代码/添加新的图像:
// Just a class inheriting from Image
DraggableMediaItem newItem = new DraggableMediaItem();
Uri uri = new Uri(ofd.FileName, UriKind.Absolute);
BitmapImage icon = new BitmapImage(uri);
newItem.Source = icon;
newItem.PreviewMouseDown += new MouseButtonEventHandler(DragMe_MouseDown);
newItem.PreviewMouseMove += new MouseEventHandler(DragMe_MouseMove);
newItem.PreviewMouseUp += new MouseButtonEventHandler(DragMe_MouseUp);
newItem.TextInput += new TextCompositionEventHandler(DragMe_TextInput);
newItem.LostMouseCapture += new MouseEventHandler(DragMe_LostMouseCapture);
RootCanvas.Children.Add(newItem);
谢谢我知道这一点我有所有的拖/放东西工作正常,通过XAML在画布上绘制的图像,但编程添加的onmousedown没有它的价值 – 2010-07-30 08:21:25
啊我通过你的建议工作。我说好的意识到我需要将其设置第一 – 2010-07-30 08:22:50
供参考:我刚添加这两个附加行于上述片段 Canvas.SetLeft(的newitem,0); Canvas.SetTop(newItem,0); – 2010-07-30 08:24:00