Estoy tratando de implementar una imagen estándar de arrastrar y soltar en wpf con Rx.Error No se puede convertir la expresión lambda en suscribirse para un IObservable <Point>
var mouseDown = from evt in Observable.FromEventPattern<MouseButtonEventArgs>(image, "MouseLeftButtonDown")
select evt.EventArgs.GetPosition(image);
var mouseUp = Observable.FromEventPattern<MouseButtonEventArgs>(this, "MouseLeftButtonUp");
var mouseMove = from evt in Observable.FromEventPattern<MouseEventArgs>(this, "MouseMove")
select evt.EventArgs.GetPosition(this);
var q = from startLocation in mouseDown
from endLocation in mouseMove.TakeUntil(mouseUp)
select new Point
{
X = endLocation.X - startLocation.X,
Y = endLocation.Y - startLocation.Y
};
q.ObserveOn(SynchronizationContext.Current).Subscribe(point =>
{
Canvas.SetLeft(image, point.X);
Canvas.SetTop(image, point.Y);
});
consigo el error de error Cannot convert lambda expression to type 'System.IObserver<System.Windows.Point>' because it is not a delegate type
lo que me estoy perdiendo?
Tu código funciona bien para mí. ¿Ha hecho referencia a Rx-Main y Rx-WPF? – Phil
sí, me he referido a ambos. –
Compruebe si su plataforma de destino indica .NET 4 Client Profile y en caso afirmativo, cámbielo a .NET 4. – Christoph