Udostępnij przez


Zbiór atramentu

Kolekcja pisma rozpoczyna się od digitalizatora. Użytkownik umieszcza pióro na digitizatorze i zaczyna pisać. Możesz użyć funkcji zbierania atramentu interfejsu API do zarządzania zbieraniem danych atramentu, które "przepływają" z pióra. Masz dostęp do informacji o dostępnym sprzęcie na tablecie PC za pośrednictwem kolekcji tabletów i obiektu tabletu. Następnie użyjesz obiektu InkCollector, aby pobrać dane pochodzące z cyfryzatora.

Tablety i obiekt tabletu

Tablet reprezentuje urządzenie digitalizujące komputera typu Tablet PC. Tablet PC może mieć więcej niż jeden digitalizator. Za pomocą obiektu tabletu można wykonywać zapytania dotyczące dostępnych urządzeń digitalizacyjnych, które są podłączone do komputera typu tablet, oraz ich możliwości sprzętowych. Można na przykład określić, czy Tablet, z którym pracujesz, jest zintegrowany z wyświetlaczem lub jest oddzielnym urządzeniem zewnętrznym.

Obiekt InkCollector

Obiekt InkCollector przechwytuje dane wejściowe pisma z dostępnych urządzeń tabletowych . Obiekt InkCollector zbiera tylko atrament i gesty wejściowe w określonym oknie. Bardzo wydajny odbiornik zdarzeń renderuje dane wejściowe w czasie rzeczywistym. Obiekt InkCollector przechwytuje wejście i kieruje je do obiektu Ink.

Notatka

Jednoczesne nakładanie tuszu za pomocą wielu piór może działać lub nie, w zależności od możliwości sprzętowych urządzenia digitalizującego.

 

Jak działa zbieracz atramentu

Obiekt InkCollector dołącza się do znanego okna aplikacji. Następnie umożliwia użytkownikom korzystanie z dowolnego dostępnego urządzenia Tablet PC (w tym myszy) do układania atramentu w czasie rzeczywistym w tym oknie. Ślady atramentu, które zbiera, są przechowywane w skojarzonym obiekcie atramentowym . Te pociągnięcia można następnie edytować lub wysyłać do rozpoznawacza w celu rozpoznania. Obiekt InkCollector powiadamia również aplikację, gdy kursor wchodzi w zasięg któregokolwiek z używanych urządzeń Tablet PC.

Aby obiekt InkCollector dokładnie ustawić kursor myszy w oknie z włączonym atramentem, to okno musi mieć możliwość odbierania komunikatu WM_SETCURSOR. To działa dla wszystkich zwykłych okien, ale w przypadku kontrolki w oknie dialogowym nadrzędne okno dialogowe kontrolki filtruje tę wiadomość. Aby kontrolka odbierała komunikat, ustaw styl SS_NOTIFY.

Obiekt InkOverlay

Omówiony wcześniej obiekt InkCollector jest przydatny dla aplikacji w celu zapewnienia własnego modelu do wybierania, wymazywania i innej interakcji użytkownika. Obiekt InkOverlay jest nadzbiorem obiektu InkCollector, który oferuje obsługę edycji. Jest to przydatne dla aplikacji do integrowania rysowania odręcznego i edytowania na ich własnej kanwie dokumentu, przy użyciu zestawu standardowych modeli wyboru rysowania dostępnych w obiekcie.

Zarówno obiekt InkCollector, jak i obiekt InkOverlay, a także kontrolka InkPicture, używają typowych konstrukcji, takich jak obiekt Atrament oraz kolekcja atrybuty rysunku, dzięki czemu podstawowy sposób zmiany koloru atramentu jest taki sam wszędzie. Dzięki temu można ponownie użyć kodu i mieć wspólny dostęp programowy, co może być szczególnie ważne, jeśli oferujesz obsługę skryptów w aplikacji.

inkOverlay jest obiektem COM, który jest przydatny w scenariuszach adnotacji, w których użytkownicy nie są zainteresowani rozpoznawaniem tuszu, lecz interesują się rozmiarem, kształtem, kolorem i pozycją tuszu. Dobrze nadaje się do robienia notatek i podstawowego scribbling. Domyślny interfejs użytkownika to przezroczysty prostokąt z nieprzezroczystym atramentem.

InkOverlay rozszerza klasę InkCollector na trzy sposoby:

  • Zgłasza zdarzenia dla rozpoczęcia rysowania, zakończenia rysowania oraz zmian atrybutów atramentu.
  • Umożliwia użytkownikom wybieranie, wymazywanie i zmienianie rozmiaru pisma odręcznego.
  • Obsługuje polecenia wycinania, kopiowania i wklejania.

Typowy scenariusz, w którym InkOverlay jest przydatny, to oznaczanie slajdu lub obrazu prezentacji. Obiekt InkOverlay umożliwia łatwą implementację możliwości atramentu i układu, których wymaga ten scenariusz.

Aby pracować z InkOverlay, należy:

  1. Zainicjuj wystąpienie obiektu InkOverlay.
  2. Dołącz uchwyt (handle, w kodzie zarządzanym) okna do właściwości hWnd obiektu InkOverlay (Handle property, w kodzie zarządzanym).
  3. Ustaw właściwość Enabled obiektu InkOverlay na TRUE.

Obiekt InkOverlay zawiera podstawową obsługę drukowania, ale należy zaimplementować podgląd wydruku lub inne zaawansowane funkcje drukowania.

InkOverlay zapisuje dane atramentu w znormalizowanym formacie atramentu (ISF).

Notatka

Jeśli obiektu InkOver lay jest ustawiona na Usuń lub Wybierz, są wyzwalane inne zdarzenia (takie jak InkAdded, InkDeletedi pociągnięcia). Te zdarzenia są przydatne, jeśli chcesz zaimplementować własne usuwanie lub wybrać tryby.

 

Wybieranie tuszu

Obiekt InkOverlay pozwala użytkownikom na użycie narzędzia lasso do wybierania obiektów pisma odręcznego zawartych w wyznaczonym obszarze. Użytkownicy mogą również wybrać atrament, naciskając dowolny obiekt atramentu .

Użyj właściwości Selection, aby zwrócić kolekcję Strokes, której można użyć do manipulowania wyborem użytkownika.

Po wybraniu obiektu Ink lub zestawu obiektów Ink, uchwyty rozmiaru pojawiają się w czterech rogach ramki ograniczającej atramentu i we wszystkich punktach środkowych między sąsiednimi rogami. Jeśli użytkownik przeciąga w dowolnym miejscu w wybranym regionie, atrament staje się przesuwalny wewnątrz kontrolki.

Zachowanie domyślne

Obiekt InkOverlay jest domyślnie ustawiony na zbieranie atramentu. Tusz ma szerokość 53 jednostek przestrzeni tuszu (gdzie 1 jednostka przestrzeni tuszu = 1 HIMETRIC). Tusz jest czarny, jeśli użytkownik nie korzysta z trybu dużego kontrastu. W przeciwnym razie atrament jest ustawiany na wartość COLOR_WINDOWTEXT (WindowText w kodzie zarządzanym). DopasowanieDoKrzywej jest FAŁSZ.

Obiekty kursora i przycisku

Kursor odpowiada wierzchołku pióra używanego na tablecie PC. Na przykład ołówek ma dwa końce. Zazwyczaj jeden koniec jest używany do pisania, a drugi jest używany do wymazywania. Te dwa końce odpowiadają dwóm kursorom. Klasa Cursor nie jest mylona z System.Windows.Forms.Cursor.

Na komputerze z tabletem kursor jest zwykle definiowany do pisania lub wymazywania. Kursor może potencjalnie zmienić role, jeśli aplikacja włączy tę funkcję. Niektóre urządzenia z tabletami umożliwiają korzystanie z wielu piór. Każdy kursor ma skojarzony identyfikator kursora, który jest unikatowy w systemie. Kursor może mieć zero lub więcej skojarzonych przycisków. Te przyciski są udostępniane aplikacji jako obiekty CursorButton. Aplikacja może podać określony obiekt DrawingAttributes dla dowolnego kursora.

Obiekt atrybutów rysunku

Obiekt DrawingAttributes opisuje, w jaki sposób należy rysować jakikolwiek znany zestaw tuszu. Obiekt DrawingAttributes zawiera podstawowe właściwości, takie jak Color, Widthi PenTip. Może również obejmować zaawansowane parametry, takie jak zmienną przezroczystość i wygładzanie Béziera, które mogą zapewnić interesujące efekty lub poprawić czytelność tuszu.

obiekt PenInputPanel

Nota

Klasa PenInputPanel została uznana za przestarzałą. Klasa PenInputPanel została zastąpiona przez klasę TextInputPanel.

 

Obiekt PenInputPanel umożliwia łatwe wprowadzanie danych piórem bezpośrednio do aplikacji. PenInputPanel jest dostępny jako obiekt dołączany, który umożliwia dodanie funkcji Panelu wprowadzania komputera tabletu do istniejących kontrolek. Interfejs użytkownika jest w dużej mierze wymagany przez bieżący język danych wejściowych. Możesz wybrać domyślną metodę wprowadzania dla PenInputPanel, pisma ręcznego lub klawiatury. Użytkownik końcowy może przełączać się między metodami wejściowymi przy użyciu przycisków w interfejsie użytkownika.

Klasa InkCollector (C++)

Klasa InkOverlay (C++)

Microsoft.Ink przestrzeń nazw