2009-03-09 11 views
3

Blu test ediyorum ve pencereyi sürükleyebileceğimi fark ettim. Bu pencere şeffaf. Aynısını bir başparmak ile yapmaya çalıştım ama nasıl şeffaf yapılacağını bilmiyorum. Pencerenin geri kalanı saydamdır, ancak başparmak değildir.Wpf penceresini başparmak ile sürükleyin: saydam olabilir mi?

Başparmağı saydamlaştırmanın bir yolu var mı, yoksa başka bir teknik mi kullanmalıyım?

Ben bu olayı kullanın:

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

teşekkür ederiz

Sorunuzu doğru anlamak, ancak bir wpf penceresini sürüklemek için ise

cevap

5

emin değil, bir tıklama olay işleyicisi yazmak için gereken tüm formun (veya form itsself) üzerine bileşenidir:

this.DragMove(); 

sürükleyerek işlevselliğini kendiniz uygulamak için gerek yoktur.


Güncelleme: küçük örnek: Bir pencere oluşturun, içine bir düğme yerleştirin. Tel penceresinin MouseDown ve sıra düğme tıklayın: mükemmel

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

Works, pencereyi sürükleyebilir ve düğme çalışmaya devam ediyor ...

+0

teşekkürler cevap için Tom . Bence bu çözüm olabilir. Bir ızgaraya basılmış bir mousemove + leftbutton ile çalıştı ve kısmen çalıştı. Pencerenin düğmeleri çalışmayı durdurdu. Çalışan bir örneğiniz var mı? –

+0

Hızlı bir test yaptım ve her şey burada çalışıyor ... Güncelleme için orijinal yanıtımı küçük örnekle görün. –

+0

Bir şey fare hareketini tespit etmektir. Başka bir şey gerçek Sürükle işlevselliği, özellikle 'DragDeltaEventArgs' '' VerticalChange' ve 'HorizontalChange' değerleridir. Sürükle işlemek gerekiyorsa, başka bir cevapta belirtildiği gibi opaklığını 0 olarak ayarlayan 'Thumb' gidilecek yoldur. – heltonbiker

8

Görünmez bir başparmak kontrolünü açabilirsiniz Opacity özniteliği ile.

Opaklık = "1" (görünür tam)

veya

Opaklık = "0" benim uygulamadan

Numune (görünmeyen)

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

     </Thumb> 
İlgili konular