ContentElement.CaptureMouse Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 true
dipanggil. 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
.