Hello,

Cela fait maintenant un bout de temps que je cherche le moyen de séparer les changement de valeur programmatique ou utilisateur d'un slider de mon application...

J'ai un slider sur ma fenetre. je peux soit le modifier par code, soit le modifier par souris.
Si je le modifie par souris je veux faire quelque chose pour mettre à jour mon état interne, si je le modifie par code, mon état interne n'a pas besoin d'être mis à jour.

Pour l'instant, la mise à jour se fait lorsque l'on bouge avec la souris ou lorsque l'on bouge avec le code...

Sur la trackbar de winform y avait un événement que l'on appelait Scroll qui le faisait très bien... mais la je trouve rien qui ressemble.

Si quelqu'un a une idée... je l'accepte volontier...

Merci déjà de m'avoir lu.


P.S. un petit bout de code pour si jamais, même si je pense pas que ce soit très utile :

ma window :
(partie xaml)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<Grid>
    <Slider x:Name="m_slider"
            Minimum="0.0"
            Maximum="1.0"
            Value="{Binding ElementName=m_timelineControl, Path=Position}">
      <Slider.ToolTip>
        <TextBlock Text="{Binding Path=Position}" />
      </Slider.ToolTip>
    </Slider>
  </Grid>
(partie C#)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
     public static readonly DependencyProperty PositionProperty =
      DependencyProperty.Register(
        "Position",
        typeof(double),
        typeof(PreviewerTimelineControl),
        new FrameworkPropertyMetadata(new PropertyChangedCallback(OnPositionChanged)));
 
    public double Position
    {
      get { return (double)GetValue(PreviewerTimelineControl.PositionProperty); }
      set { SetValue(PreviewerTimelineControl.PositionProperty, (double)value); }
    }
 
    private static void OnPositionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
 
      if (?????)
      {
        // Je veux pas que ca entre la si ca vient de moveIt
        // je veux que ca entre la si ca vient d'une modification par souris...
      }
    }
    void moveIt(double newPosition)
    {
       Position = newPosition;
     }