2009-03-09 6 views
3

Ich habe getestet Blu und ich bemerkte, dass ich das Fenster ziehen konnte. Dieses Fenster ist transparent. Ich habe versucht, das gleiche mit einem Daumen zu tun, aber ich weiß nicht, wie man es transparent macht. Der Rest des Fensters ist transparent, aber der Daumen ist nicht.Drag WPF Fenster mit dem Daumen: Kann es transparent sein?

Gibt es eine Möglichkeit, den Daumen transparent zu machen, oder sollte ich eine andere Technik verwenden?

Ich benutze diese Veranstaltung:

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); 
    } 

Danke

Antwort

5

nicht sicher, ob ich Ihre Frage richtig verstanden hat, aber ein WPF-Fenster zu ziehen, benötigen Sie in dem Click-Ereignishandler eines eintippen Komponente auf dem Formular (oder das Formular selbst) ist:

this.DragMove(); 

Es ist nicht erforderlich, die Drag-Funktionalität selbst zu implementieren.


Update: kleines Beispiel: Erstellen Sie ein Fenster, legen Sie eine Schaltfläche darin. Draht die MouseDown- des Fensters und das Klicken der Schaltfläche wie:

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

funktioniert perfekt, können Sie das Fenster ziehen, und die Taste weiter arbeiten ...

+0

Danke für die Antwort Tom . Ich denke, das kann die Lösung sein. Versuchte es mit einem Mausklick + linke Taste in einem Raster gedrückt und es funktionierte teilweise. Die Schaltflächen des Fensters haben nicht mehr funktioniert. Hast du ein funktionierendes Beispiel? –

+0

Hat einen schnellen Test gemacht, und alles funktioniert hier ... Siehe meine ursprüngliche Antwort für das Update mit kleinem Beispiel. –

+0

Eine Sache ist die Mausbewegung zu erkennen. Eine andere Sache ist die eigentliche Drag-Funktionalität, insbesondere die 'VerticalChange'- und' HorizontalChange'-Werte von 'DragDeltaEventArgs'. Wenn Sie mit dem Ziehen fertig werden müssen, dann ist 'Thumb' der richtige Weg und setzt seine Deckkraft auf 0, wie in einer anderen Antwort erwähnt. – heltonbiker

8

Sie können eine Daumensteuerung unsichtbar werden mit dem Opazitätsattribut.

Opazität = "1" (voll sichtbar)

oder

Opazität = "0" (nicht sichtbar)

Beispiel aus meiner Anwendung

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

     </Thumb>