Bagikan melalui


ContentElement.CaptureMouse Metode

Definisi

Mencoba untuk memaksa pengambilan mouse ke elemen ini.

public:
 virtual bool CaptureMouse();
public bool CaptureMouse ();
abstract member CaptureMouse : unit -> bool
override this.CaptureMouse : unit -> bool
Public Function CaptureMouse () As Boolean

Mengembalikan

true jika mouse berhasil ditangkap; jika tidak, false.

Penerapan

Contoh

Contoh berikut menangkap tangkapan mouse atau rilis, berdasarkan apakah mouse sudah diambil oleh elemen . Perhatikan bahwa contoh ini melemparkan elemen target pengambilan prospektif ke IInputElement antarmuka, dan dengan demikian awalnya memanggil IInputElement.CaptureMouse metode . Casting ke IInputElement adalah teknik yang berguna jika Anda tidak yakin apakah elemen yang ingin Anda ambil mouse adalah UIElement atau ContentElement. Transmisi antarmuka dan panggilan metode antarmuka kemudian memanggil implementasi CaptureMouse khusus jenis yang sesuai secara internal tanpa memerlukan uji coba transmisi baik UIElement atau ContentElement. Teknik transmisi yang sama ini berfungsi untuk anggota lain yang IInputElement mendefinisikan, misalnya banyak peristiwa terkait input, dan metode terkait input lainnya.

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

Keterangan

Untuk diambil, elemen harus diaktifkan. Periksa apakah IsEnabled sebelum true Anda memanggil CaptureMouse.

Jika panggilan CaptureMouse mengembalikan true, maka IsMouseCaptured juga true.

Jika panggilan CaptureMouse mengembalikan , maka GotMouseCapture peristiwa dan IsMouseCapturedChanged dinaikkan, dengan RoutedEventArgs.Source dalam data peristiwa yang dilaporkan sebagai elemen tempat CaptureMouse metode truedipanggil. Jika Anda memaksa pengambilan, Anda mungkin mengganggu tangkapan yang ada - terutama dengan tangkapan yang terkait dengan seret dan letakkan dengan mouse.

Untuk menghapus tangkapan mouse dari semua elemen, panggil Mouse.Capture dengan parameter yang element disediakan sebagai null.

Berlaku untuk

Lihat juga