Kalemi Kullanarak Silme
InkOverlay nesnesini kullanmak dışında, uygulamanızda silmeyi uygulamayı seçerseniz, bunu aşağıdaki iki yöntemden birini kullanarak yapabilirsiniz.
Kalemin Ucunu Kullanma
Tablet kaleminin ucu genellikle el yazısı ve çizim için kullanılır; ancak, ipucu mürekkep silmek için de kullanılabilir. Bunu yapmak için uygulamanın kullanıcıların kullanabileceği bir silme moduna sahip olması gerekir. Bu modda, imlecin hangi mürekkep üzerinde hareket ettiğini belirlemek için isabet testini kullanın. Silme modunu, tasarıma veya işlevsel konulara bağlı olarak yalnızca imlecin geçtiği mürekkepi veya imlecin yolunu kesişen tüm vuruşları silecek şekilde ayarlayabilirsiniz.
Mürekkep silmek için silme modunu kullanma örneği için bkz. Mürekkep Silme Örneği.
Kalemin Üst Kısmını Kullanma
Silme işlemini tablet kaleminin üst kısmıyla uygulamak için uygulamanızın imleçte bir değişiklik araması gerekir. Ters çevrilmiş imleci aramak için, imlecin uygulamanızın bağlamında ne zaman olduğunu belirlemek için cursorInRangeolayınıdinleyin. İmleç aralıktayken, ters çevrilmiş özelliğini İmleç nesnesinde arayın. Ters özelliği doğruise, imlecin hangi mürekkep üzerinde hareket ettiğini belirlemek için isabet testi yapın. Tasarım veya işlevsel konulara bağlı olarak mürekkep veya imlecin yolunu kesen vuruşları silin.
Mürekkep silmek için kalemin üst kısmının nasıl kullanılacağına ilişkin bir örnek için bkz. Mürekkep Silme Örneği.
Kalemin Üst Kısmıyla Silmenin Etkin Olup Olmadığını Belirleme
Kullanıcılar, özel donanımları izin veriyorsa Tablet PC için tasarlanmış uygulamalarda mürekkep silmek için kalemin üst kısmını kullanabilir. Bu işleve, Tablet ve Kalem Ayarları denetim masası iletişim kutusunun Kalem Seçenekleri sekmesindeki Kalem düğmeleri grup kutusundaki bir onay kutusu tarafından erişilir. Kullanıcının kalemin üst kısmında silmeyi etkinleştirip etkinleştirmediğini algılamak için aşağıdaki kayıt defteri alt anahtarını denetleyin:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\WISP\PEN\SysEventParameters
Bu alt anahtarın EraseEnable
girişi REG_DWORDtüründedir. Bu girdinin değeri etkin için 1 veya devre dışı için 0'dır. Diğer değerler gelecekte kullanılmak üzere ayrılmıştır.
Uygulamanız kalemin üst kısmının silinmek üzere kullanılmasına izin veriyorsa, aşağıdaki durumlarda EraseEnable girdisinin değerini denetlemeli ve önbelleğe almalısınız:
- Uygulamanız başlatılır.
- Uygulamanız odağını kaybettikten sonra herhangi bir zamanda odağı geri alır.
Uygulamanızın davranışını uygun şekilde değiştirmek için bu önbelleğe alınmış değeri kullanın.
Aşağıdaki C# örneği, SysEventParameters
alt anahtarının EraseEnable
girişinin değerini denetleen bir GetEraseEnabled
yöntemi tanımlar.
GetEraseEnabled
yöntemi, girdinin değeri 1 ise TRUE döndürür; girişin değeri 0 ise YANLIŞ döndürür; veya girdinin değeri 1 veya 0 dışındaysa InvalidOperationException özel durumu oluşturur.
GetEraseEnabled
yöntemi, alt anahtar veya girdi mevcut değilse beklenen değer olarak TRUE döner.
private bool GetEraseEnabled()
{
// 0 is disabled, 1 is enabled. The default is enabled
const int Enabled = 1;
const int Disabled = 0;
const int DefaultValue = Enabled;
// Constants for the registry subkey and the entry
const string Subkey =
@"SOFTWARE\Microsoft\WISP\PEN\SysEventParameters";
const string KeyEntry = "EraseEnable";
// Open the registry subkey.
Microsoft.Win32.RegistryKey regKey =
Microsoft.Win32.Registry.CurrentUser.OpenSubKey(Subkey);
// Retrieve the value of the EraseEnable subkey entry. If either
// the subkey or the entry does not exist, use the default value.
object keyValue = (null == regKey) ? DefaultValue :
regKey.GetValue(KeyEntry,DefaultValue);
switch((int)keyValue)
{
case Enabled:
// Return true if erasing on pen inversion is enabled.
return true;
case Disabled:
// Return false if erasing on pen inversion is disabled.
return false;
default:
// Otherwise, throw an exception. Do not assume this is
// a Boolean value. Enabled and Disabled are the values
// defined for this entry at this time. Other values are
// reserved for future use.
throw new InvalidOperationException(
"Unexpected registry subkey value.");
}
}