2009-03-09 6 views
3

J'ai testé Blu et j'ai remarqué que je pouvais faire glisser la fenêtre. Cette fenêtre est transparente. J'ai essayé de faire la même chose avec un pouce, mais je ne sais pas comment le rendre transparent. Le reste de la fenêtre est transparent, mais le pouce ne l'est pas.Faites glisser fenêtre wpf avec le pouce: peut-il être transparent?

Y at-il un moyen de rendre le pouce transparent, ou devrais-je utiliser une autre technique?

J'utilise cet événement:

private void DragThumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e) 
    { 
     Canvas.SetLeft(this, Canvas.GetLeft(this) + e.HorizontalChange); 
     Canvas.SetTop(this, Canvas.GetTop(this) + e.VerticalChange); 
    } 

Merci

Répondre

5

Je ne sais pas si je comprends bien votre question, mais de faire glisser une fenêtre WPF, tout ce que vous devez taper dans le gestionnaire d'événements de clic d'un composant sur la forme (ou la forme itsself) est:

this.DragMove(); 

Il n'y a pas besoin de mettre en œuvre la fonctionnalité vous glisser.


Mise à jour: petit exemple: Créez une fenêtre, placez un bouton dedans. Câbler le MouseDown de la fenêtre et le clic du bouton comme:

private void Window_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    this.DragMove(); 
} 
private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    MessageBox.Show("hey"); 
} 

fonctionne parfaitement, vous pouvez faire glisser la fenêtre, et le bouton continue de travailler ...

+0

Merci pour la réponse Tom . Je pense que cela peut être la solution. Essayé avec un mousemove + bouton gauche pressé dans une grille et il a travaillé partiellement. Les boutons de la fenêtre ont cessé de fonctionner. Avez-vous un exemple de travail? –

+0

A fait un test rapide, et tout fonctionne ici ... Voir ma réponse originale pour la mise à jour avec un petit exemple. –

+0

Une chose est de détecter les mouvements de la souris. Une autre chose est la fonctionnalité Drag réelle, en particulier les valeurs 'VerticalChange' et' HorizontalChange' de 'DragDeltaEventArgs'. Si vous devez manipuler le glisser, alors 'Thumb' est le chemin à parcourir, en définissant son opacité à 0 comme mentionné dans une autre réponse. – heltonbiker

8

Vous pouvez activer un contrôle invisible pouce avec l'attribut Opacité.

Opacité = "1" (pleine et visible)

ou

Opacité = "0" (non visible)

échantillon de ma demande

 <Thumb Name="myThumb" 
       Width="10" 
       Height="10" 
       DragDelta="onDragDelta" 
       DragStarted="onDragStarted" 
       DragCompleted="onDragCompleted" 
       Margin="5" 
       HorizontalAlignment="Right" 
       Opacity="1"> 

     </Thumb>