En regardant les extensions réactives pour la démo javascript sur Jeff Van Gogh's blog, j'ai pensé que je ferais un essai en C#/Winforms, mais cela ne semble pas fonctionner aussi bien.Le temps passe comme une démo de flèches dans WinForms
Je viens de jeter cela dans le constructeur d'un formulaire (avec le cadre Rx installé et référencé):
Observable.Context = SynchronizationContext.Current;
var mousemove = Observable.FromEvent<MouseEventArgs>(this, "MouseMove");
var message = "Time flies like an arrow".ToCharArray();
for(int i = 0; i < message.Length; i++)
{
var l = new Label()
{
Text = message[i].ToString(),
AutoSize = true,
TextAlign = ContentAlignment.MiddleCenter
};
int closure = i;
mousemove
.Delay(closure * 150)
.Subscribe(e =>
{
l.Left = e.EventArgs.X + closure * 15 + 10;
l.Top = e.EventArgs.Y;
//Debug.WriteLine(l.Text);
});
Controls.Add(l);
}
Lorsque je déplace la souris, les lettres semblent se déplacer dans un ordre aléatoire, et si Je décommenter la ligne de débogage, je vois plusieurs événements pour la même lettre ...
Des idées? J'ai essayé Throttle, mais cela ne semble pas faire de différence. Est-ce que je demande juste trop de WinForms pour déplacer toutes ces étiquettes autour?
(Cross posté sur Rx Forum)
Avez-vous essayé WPF ? – jrista
@jrista: Pas encore – Benjol