LEADTOOLS(Leadtools.Annotations.Core)

フレームを表示
プロジェクトを開始して、LEADTOOLS Windowsフォームアノテーションのオートメーション化したアノテーション機能を説明する若干のcodeを追加するために、以下の手順をとります。
  1. Visual Studio .NETを開始します。
  2. ファイル->新規作成->プロジェクトを選択します?メニューから。
  3. 新しいプロジェクトダイアログボックスでは、プロジェクトテンプレートとして「Visual C#」と「Windowsフォームアプリケーション」を選択します。
  4. プロジェクト名前フィールドの「WinFormsオートメーション」としてプロジェクト名を入力します、そして、OKを選択します。必要であれば、プロジェクトの新しい場所を入力するか、ブラウズボタンを用いてディレクトリを選択します、そして、OKを選択します。
  5. 「ソリューションエクスプローラー」ウィンドウでは、プロジェクトのために「参照」フォルダを右クリックして、コンテキストメニューから「参照の追加...」を選択します。「参照マネージャー」ダイアログボックスでは、「#LEADTOOLS_INSTALLDIR#\Bin\Dotnet4\」フォルダ(ターゲットプラットホームに依存する)に閲覧を選択して、以下のアセンブリファイルを選択します:
    • Leadtools.dll
    • Leadtools.Codecs.dll
    • Leadtools.Drawing.dll
    • Leadtools.WinForms.dll
    • Leadtools.Codecs.Bmp.dll
    • Leadtools.Codecs.Fax.dll
    • Leadtools.Codecs.Tif.dll
    • Leadtools.Codecs.Cmp.dll
    • Leadtools.Codecs.Png.dll
    • Leadtools.Annotations.Core.dll
    • Leadtools.Annotations.Designers.dll
    • Leadtools.Annotations.Rendering.dll
    • Leadtools.Annotations.Automation.dll
    • Leadtools.Annotations.WinForms.dll
    セレクトボタンをクリックして、それからアプリケーションに上記の参照を追加するために、OKボタンをクリックします。

    注意:Leadtools.Annotations.WinForms.dllは、#LEADTOOLS_INSTALLDIR#\Examples\DotNet\CS\Leadtools.Annotations.WinFormsでソースコードで出荷されるサンプルプロジェクトをコンパイルする結果です。LEADTOOLSセットアップは、Bin\DotNet4フォルダにこのアセンブリのプレコンパイルドバージョンをコピーします。このアセンブリは、AnnAutomationRasterImageViewerとAnnAutomationManagerHelperなどの.NET WinFormsアノテーションオートメーションユーザーインターフェースヘルパークラスを格納します。

  6. .NET 4を使っているならば、このアプリケーション意志はターゲットフレームワークを完全な.NETフレームワーク4に切り替えることを必要としました。
  7. 主なフォームのcodeビューに切り替えて、上で以下の宣言を追加します:
    [C#]
    
                 using Leadtools;
                 using Leadtools.WinForms;
                 using Leadtools.Codecs;
                 using Leadtools.Annotations.Core;
                 using Leadtools.Annotations.Designers;
                 using Leadtools.Annotations.Rendering;
                 using Leadtools.Annotations.Automation;
                 using Leadtools.Annotations.WinForms;
                 
    
  8. Form1に以下のプライベートメンバを追加します:
    [C#]
    
                 // Annotations-aware RasterImageViewer
                 private AnnAutomationRasterImageViewer _imageViewer;
                 // Annotations automation manager with WinForms functionality
                 private AnnAutomationManagerHelper _annotations;
                 
    
  9. Form1ロードイベントでに以下のcodeを追加します。これは、最小限のオートメーションアプリケーションを作成します:
    [C#]
    
                 protected override void OnLoad(EventArgs e)
                 {
                    if (!DesignMode)
                    {
                       // Create the viewer and add it to the form
                       _imageViewer = new AnnAutomationRasterImageViewer();
                       _imageViewer.Dock = DockStyle.Fill;
                       Controls.Add(_imageViewer);
                
                       // Create the annotations
                       AnnAutomationManager automationManager = new AnnAutomationManager();
                       automationManager.CreateDefaultObjects();
                
                       // Create the helper
                       _annotations = new AnnAutomationManagerHelper(automationManager);
                
                       // Create the toolbar and add it to our form
                       _annotations.CreateToolBar();
                       ToolBar toolBar = _annotations.ToolBar;
                       toolBar.Dock = DockStyle.Top;
                       toolBar.Appearance = ToolBarAppearance.Flat;
                       Controls.Add(toolBar);
                
                       // Load an image into the viewer
                       using (RasterCodecs codecs = new RasterCodecs())
                          _imageViewer.Image = codecs.Load(@"C:\Users\Public\Documents\LEADTOOLS Images\sample1.cmp");
                
                       // Create an automation object for it
                       AnnAutomation automation = new AnnAutomation(automationManager, _imageViewer);
                       automationManager.Automations.Add(automation);
                
                       // Add the events to show the object context menu and object properties form
                
                       automation.OnShowContextMenu += delegate(object sender, AnnAutomationEventArgs showContextMenuEventArgs)
                       {
                          if (showContextMenuEventArgs != null && showContextMenuEventArgs.Object != null)
                          {
                             AnnAutomationObjectExtData data = showContextMenuEventArgs.Object.UserData as AnnAutomationObjectExtData;
                             if (data != null && data.ContextMenu != null)
                             {
                                ObjectContextMenu menu = data.ContextMenu as ObjectContextMenu;
                                if (menu != null)
                                {
                                   menu.Automation = sender as AnnAutomation;
                                   data.ContextMenu.Show(this, _imageViewer.PointToClient(Cursor.Position));
                                }
                             }
                          }
                       };
                
                       automation.OnShowObjectProperties += delegate(object sender, EventArgs showObjectPropertiesEventArgs)
                       {
                          // Show the object properties form
                          using (ObjectPropertiesForm form = new ObjectPropertiesForm(automation))
                          {
                             try
                             {
                                form.ShowDialog(this);
                             }
                             catch (Exception ex)
                             {
                                MessageBox.Show(this, ex.Message);
                             }
                          }
                       };
                
                       // Set it as Active so UI input will go to it
                       automation.Active = true;
                    }
                 
                    base.OnLoad(e);
                 }
                 
    
  10. デモをビルドして実行します。imageに注釈をつけることができるはずで、コンテキストメニューを示す任意のオブジェクトを右クリックできるはずで、任意のオブジェクトプロパティを変更するために、プロパティを選択できるはずです。