IncrementalHitTester Kelas
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.
Secara dinamis melakukan pengujian hit pada Stroke.
public ref class IncrementalHitTester abstract
public abstract class IncrementalHitTester
type IncrementalHitTester = class
Public MustInherit Class IncrementalHitTester
- Warisan
-
IncrementalHitTester
- Turunan
Contoh
Contoh berikut menunjukkan cara menambahkan poin ke IncrementalHitTester saat pengguna memasukkan data dengan stylus. Contohnya mencakup StrokeHit penanganan aktivitas yang menghapus bagian Stroke dari interseksi pengguna. Untuk membuat kontrol yang memungkinkan pengguna menghapus tinta, lihat Cara: Menghapus Tinta pada Kontrol Kustom.
// Prepare to collect stylus packets. Get the
// IncrementalHitTester from the InkPresenter's
// StrokeCollection and subscribe to its StrokeHitChanged event.
protected override void OnStylusDown(StylusDownEventArgs e)
{
base.OnStylusDown(e);
EllipseStylusShape eraserTip = new EllipseStylusShape(3, 3, 0);
eraseTester =
presenter.Strokes.GetIncrementalStrokeHitTester(eraserTip);
eraseTester.StrokeHit += new StrokeHitEventHandler(eraseTester_StrokeHit);
eraseTester.AddPoints(e.GetStylusPoints(this));
}
// Collect the StylusPackets as the stylus moves.
protected override void OnStylusMove(StylusEventArgs e)
{
if (eraseTester.IsValid)
{
eraseTester.AddPoints(e.GetStylusPoints(this));
}
}
// Unsubscribe from the StrokeHitChanged event when the
// user lifts the stylus.
protected override void OnStylusUp(StylusEventArgs e)
{
eraseTester.AddPoints(e.GetStylusPoints(this));
eraseTester.StrokeHit -= new
StrokeHitEventHandler(eraseTester_StrokeHit);
eraseTester.EndHitTesting();
}
// When the stylus intersects a stroke, erase that part of
// the stroke. When the stylus dissects a stoke, the
// Stroke.Erase method returns a StrokeCollection that contains
// the two new strokes.
void eraseTester_StrokeHit(object sender,
StrokeHitEventArgs args)
{
StrokeCollection eraseResult =
args.GetPointEraseResults();
StrokeCollection strokesToReplace = new StrokeCollection();
strokesToReplace.Add(args.HitStroke);
// Replace the old stroke with the new one.
if (eraseResult.Count > 0)
{
presenter.Strokes.Replace(strokesToReplace, eraseResult);
}
else
{
presenter.Strokes.Remove(strokesToReplace);
}
}
' Prepare to collect stylus packets. Get the
' IncrementalHitTester from the InkPresenter's
' StrokeCollection and subscribe to its StrokeHitChanged event.
Protected Overrides Sub OnStylusDown(ByVal e As StylusDownEventArgs)
MyBase.OnStylusDown(e)
Dim eraserTip As New EllipseStylusShape(3, 3, 0)
eraseTester = presenter.Strokes.GetIncrementalStrokeHitTester(eraserTip)
AddHandler eraseTester.StrokeHit, _
AddressOf eraseTester_StrokeHit
eraseTester.AddPoints(e.GetStylusPoints(Me))
End Sub
' Collect the StylusPackets as the stylus moves.
Protected Overrides Sub OnStylusMove(ByVal e As StylusEventArgs)
If eraseTester.IsValid Then
eraseTester.AddPoints(e.GetStylusPoints(Me))
End If
End Sub
' Unsubscribe from the StrokeHitChanged event when the
' user lifts the stylus.
Protected Overrides Sub OnStylusUp(ByVal e As StylusEventArgs)
eraseTester.AddPoints(e.GetStylusPoints(Me))
RemoveHandler eraseTester.StrokeHit, _
AddressOf eraseTester_StrokeHit
eraseTester.EndHitTesting()
End Sub
' When the stylus intersects a stroke, erase that part of
' the stroke. When the stylus dissects a stoke, the
' Stroke.Erase method returns a StrokeCollection that contains
' the two new strokes.
Private Sub eraseTester_StrokeHit(ByVal sender As Object, _
ByVal args As StrokeHitEventArgs)
Dim eraseResult As StrokeCollection = _
args.GetPointEraseResults()
Dim strokesToReplace As New StrokeCollection()
strokesToReplace.Add(args.HitStroke)
' Replace the old stroke with the new one.
If eraseResult.Count > 0 Then
presenter.Strokes.Replace(strokesToReplace, eraseResult)
Else
presenter.Strokes.Remove(strokesToReplace)
End If
End Sub
Keterangan
Secara IncrementalHitTester dinamis menentukan apakah pengguna "mencapai" .Stroke Kelas ini memungkinkan Anda untuk memberikan umpan balik langsung kepada pengguna dalam situasi seperti memilih dan menghapus tinta.
Ada dua kelas yang mewarisi dari IncrementalHitTester:
Tes IncrementalLassoHitTester pukulan stroke dengan menentukan apakah jalur lasso mengelilinginya.
Tes IncrementalStrokeHitTester pukulan stroke dengan menentukan di mana jalur penghapus bersinggungan.
Tabel berikut ini mencantumkan tempat untuk mempelajari cara mengelola tinta digital pada kontrol kustom.
Untuk melakukan ini... | Lihat artikel ini |
---|---|
Membuat kontrol yang mengumpulkan tinta digital | Membuat Kontrol Input Tinta |
Membuat kontrol yang memungkinkan pengguna memilih tinta | Cara: Pilih Tinta dari Kontrol Kustom |
Membuat kontrol yang memungkinkan pengguna menghapus titik tinta | Cara: Menghapus Tinta pada Kontrol Kustom |
Penggunaan Teks XAML
Kelas ini biasanya tidak digunakan dalam XAML.
Properti
IsValid |
Mendapatkan apakah IncrementalHitTester pengujian terpukul. |
Metode
AddPoint(Point) |
Point Menambahkan ke IncrementalHitTester. |
AddPoints(IEnumerable<Point>) |
Menambahkan titik ke IncrementalHitTester. |
AddPoints(StylusPointCollection) |
Menambahkan objek yang ditentukan StylusPoint ke IncrementalHitTester. |
AddPointsCore(IEnumerable<Point>) |
Menambahkan titik ke IncrementalHitTester. |
EndHitTesting() |
Merilis sumber daya yang digunakan oleh IncrementalHitTester. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |