ContentElement.CaptureMouse Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Fareyi bu öğeye yakalamaya zorlamaya çalışır.
public:
virtual bool CaptureMouse();
public bool CaptureMouse();
abstract member CaptureMouse : unit -> bool
override this.CaptureMouse : unit -> bool
Public Function CaptureMouse () As Boolean
Döndürülenler
true fare başarıyla yakalanırsa; aksi takdirde , false.
Uygulamalar
Örnekler
Aşağıdaki örnek, farenin öğe tarafından zaten yakalanıp yakalanmadığına bağlı olarak fareyi yakalar veya yakalamayı serbest bırakır. Bu örneğin olası yakalama hedef öğesini arabirime IInputElement attığını ve bu nedenle başlangıçta yöntemini çağırdığını IInputElement.CaptureMouse unutmayın. 'a IInputElement atama, fareyi yakalamak istediğiniz öğenin bir UIElement mi yoksa bir mi olduğundan emin değilseniz yararlı olan bir ContentElementtekniktir. Arabirim ataması ve arabirim yöntemi çağrısı daha sonra veya UIElementiçin deneme ataması ContentElement gerektirmeden uygun türe özgü CaptureMouse uygulamasını dahili olarak çağırır. Bu aynı atama tekniği, girişle ilgili olayların birçoğunu ve girişle ilgili diğer yöntemleri tanımlayan diğer üyeler IInputElement için de çalışır.
private void CaptureMouseCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("Mouse Command");
IInputElement target = Mouse.DirectlyOver;
target = target as Control;
if (target != null)
{
if (!target.IsMouseCaptured)
{
Mouse.Capture(target);
} else {
Mouse.Capture(null);
}
}
}
Private Sub CaptureMouseCommandExecuted(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
MessageBox.Show("Mouse Command")
Dim target As IInputElement = Mouse.DirectlyOver
target = TryCast(target, Control)
If target IsNot Nothing Then
If Not target.IsMouseCaptured Then
Mouse.Capture(target)
Else
Mouse.Capture(Nothing)
End If
End If
End Sub
Açıklamalar
Yakalanmak için bir öğenin etkinleştirilmesi gerekir. öğesini çağırmadan IsEnabledönce olup true olmadığını CaptureMouse denetleyin.
çağrısı CaptureMouse döndürülüyorsatrue, aynı zamanda IsMouseCapturedtrue olur.
çağrısı CaptureMouse döndürürse trueGotMouseCapture ve IsMouseCapturedChanged olayları oluşturulur RoutedEventArgs.Source ve olay verilerinde yöntemin çağrıldığı CaptureMouse öğe olarak bildirilir. Yakalamaya zorlarsanız, özellikle fareyle sürükle ve bırak ile ilgili yakalamalar için mevcut yakalamaları engelleyebilirsiniz.
Fare yakalamayı tüm öğelerden temizlemek için olarak Mouse.Capturesağlanan parametresiyle element çağrısı null yapın.