Proxy dat s analýzou rukopisu

Jak je uvedeno v Přehled analýzy rukopisu, technologie analýzy rukopisu interně udržuje model dokumentů založený na stromové struktuře tak, aby obsahoval výsledky analýzy a vztahy. Pokud už vaše aplikace má vytvořené úložiště dokumentů, které se liší, budete muset využít funkce analýzy rukopisu navržené pro proxy data mezi různorodými modely dokumentů.

Typy proxy dat

Funkce proxy dat umožňují vaší aplikaci:

  • Integrujte data výsledků analýzy zpět do existujícího modelu dokumentů.
  • Komunikujte předchozí výsledky (nebo stav) zpět do InkAnalyzer .
  • Komunikujte bez ink stavu do InkAnalyzer .
  • Komunikujte pouze minimální sadu dat (předchozí i bez ink stavu) potřebnou k dokončení operace analýzy.
  • Snadno aktualizujte model interního dokumentu aplikace pomocí výsledků analýzy.

Existují dva základní přístupy k proxy dat analýzy rukopisu. Rozdíly se nacházejí v podrobnostech o tom, kdy a jak probíhá synchronizace mezi modely dokumentů. První přístup, synchronní aktualizace, vyžaduje úpravu modelu dokumentu analýzy rukopisu při změnách v dokumentu aplikace. Druhý přístup, aktualizace na vyžádání, vyžaduje, aby se do inkAnalyzer předávala pouze data ovlivněná změnami modelu dokumentu aplikace. To znamená, že pouze data pro části modelu dokumentu Analýzy rukopisu, které jsou ve stejné oblasti jako úpravy dokumentu aplikace, musí být předány InkAnalyzer podle potřeby.

Synchronní aktualizace

Synchronní aktualizační přístup vyžaduje úpravu (vytvoření a odstranění) uzlů v kolekci objektů InkAnalyzer objektu ContextNode objekty, ke kterým dochází v dokumentu aplikace. Například při každém přidání textového slova do aplikace se vytvoří odpovídající TextWord styled ContextNode se vytvoří v InkAnalyzer. Pokud se změní umístění textového slova na stránce, umístění odpovídajícího ContextNode se aktualizuje současně. Tato metoda je méně efektivní z hlediska výpočetních prostředků než metoda na vyžádání, protože každá změna dokumentu zahrnuje aktualizaci InkAnalyzer, a to i v případě, že změna nemá vliv na analyzovaný rukopis.

Následující příklad ukazuje, jak synchronní aktualizace funguje. Představte si aplikaci, která má existující model dokumentu. Když koncový uživatel provede změnu dokumentu, například přidání nového textu, tato změna se zpracuje takto:

  1. Koncový uživatel vytvoří nová data.
  2. Aplikace určuje, jak zpracovat data, uložit je a vykreslit.
  3. Pro praktické účely se provádí současně následující kroky.
    1. Aplikace umístí data do svého modelu dokumentu.
    2. Aplikace vytvoříInkAnalyzer a aktualizuje ji. Tím současně zajistíte, že InkAnalyzer vždy obsahuje nejnovější informace.
    3. Aplikace volá BackgroundAnalyze na InkAnalyzer zahájit analýzu.
  4. Pokud změna zahrnuje rukopis, aktivuje se řada událostí a InkAnalyzer určuje nové výsledky. Jedna událost se aktivuje pro každou změnu provedené v kolekci ContextNode objekty v InkAnalyzer. Mezi tyto události patří ContextNodeCreated, ContextNodeDeleting, ContextNodeMovingToPosition, ContextNodePropertiesUpdated, ContextNodeLinkAdding, ContextNodeLinkDeletinga ContextNodeReparenting. Aplikace tyto události zpracuje tak, aby výsledky operace analýzy zprostředkuje zpět do modelu dokumentu podle potřeby.
  5. Aplikace aktualizuje rozložení dokumentu a načítá nová data z modelu dokumentu.
  6. Nová data se vykreslují zpět koncovému uživateli.

Aktualizace na vyžádání

Přístup na vyžádání vyžaduje, aby byla data předána pouze pro tyto objekty ContextNode objekty, které jsou v analyzovaných oblastech. Potřebné ContextNode objekty se extrahují z modelu dokumentu aplikace hned po vyvolání operace analýzy a znovu před opětovným přidružením výsledků. I když je implementace složitější než synchronní aktualizace, tento přístup přináší lepší výsledky výkonu.

přehled analýzy rukopisu

třídyInkAnalyzer (C++)

Microsoft.Ink.InkAnalyzer

Microsoft.Ink.ContextNode