(Leadtools.Annotations.Core)

フレームを表示

AnnSerializeOptionsクラス






メンバ 
アノテーションオブジェクトを保存するとき、使うオプション。
構文
public class AnnSerializeOptions 
'Declaration
 
Public Class AnnSerializeOptions 
public sealed class AnnSerializeOptions 
@interface LTAnnSerializeOptions : NSObject
public class AnnSerializeOptions
function Leadtools.Annotations.Core.AnnSerializeOptions()
解説

このクラスがAnnCodecs.SerializeOptionsのための型として使われて、以下のメンバを格納します:

メンバ 説明
SerializeObject

保存されているアノテーションオブジェクトごとに呼び出すイベント。任意のオブジェクトを監視してスキップできます。

SaveLockPassword

ロックされたアノテーションオブジェクトのAnnObject.Passwordがアノテーションファイルで保存されるかどうか制御します。

サンプル

このサンプルはコンテナを作成して、それに行と長方形オブジェクトを追加します。そして、セーブの間、行オブジェクトをスキップします。

Copy Code  
using Leadtools.Annotations.Automation;
using Leadtools.Annotations.Core;
using Leadtools.Codecs;

      
public void AnnCodecs_AnnSerializeOptions()
{
   // Create a new annotation container, 8.5 by 11 inches
   AnnContainer container = new AnnContainer();
   // Size must be in annotation units (1/720 of an inch)
   container.Size = LeadSizeD.Create(8.5 * 720, 11 * 720);
   double inch = 720.0;
   // Add a red line object, from 1in 1in to 2in 2in
   AnnPolylineObject lineObj = new AnnPolylineObject();
   lineObj.Points.Add(LeadPointD.Create(1 * inch, 1 * inch));
   lineObj.Points.Add(LeadPointD.Create(2 * inch, 2 * inch));
   lineObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), LeadLengthD.Create(1));
   container.Children.Add(lineObj);

   // Add a blue on yellow rectangle from 3in 3in to 4in 4in
   AnnRectangleObject rectObj = new AnnRectangleObject();
   rectObj.Rect = LeadRectD.Create(3 * inch, 3 * inch, 1 * inch, 1 * inch);
   rectObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthD.Create(1));
   rectObj.Fill = AnnSolidColorBrush.Create("Yellow");
   container.Children.Add(rectObj);

   // Show the container
   ShowContainer("Before save", container);

   // Create the codecs object to save and load annotations
   AnnCodecs codecs = new AnnCodecs();

   // Create a new instance of AnnSrializeOptions and Hook to the SerializeObject event
   AnnSerializeOptions serializeOptions = new AnnSerializeOptions();
   serializeOptions.SerializeObject += serializeOptions_SerializeObject;

   // Set it as our deserialize options
   codecs.SerializeOptions = serializeOptions;

   // Save the container
   string destFileName = @"container.xml";
   codecs.Save(destFileName, container, AnnFormat.Annotations, 1);

   // delete the container
   container = null;

   // Load the container we just saved
   container = codecs.Load(destFileName, 1);

   // Show it
   ShowContainer("After load", container);
}

void serializeOptions_SerializeObject(object sender, AnnSerializeObjectEventArgs e)
{
   AnnObject annObj = e.AnnObject;
   if (annObj.Id == AnnObject.PolylineObjectId)
   {
      Debug.WriteLine("skipping a polyline during save");
      e.SkipObject = true;
   }
}
using Leadtools.Converters;
using Leadtools.Annotations.Automation;
using Leadtools.Controls;
using Leadtools.Annotations.Core;
using Leadtools.Codecs;

      
public async Task AnnCodecs_AnnSerializeOptions()
{
   // Create a new annotation container, 8.5 by 11 inches
   AnnContainer container = new AnnContainer();
   // Size must be in annotation units (1/720 of an inch)
   container.Size = LeadSizeDHelper.Create(8.5 * 720, 11 * 720);
   double inch = 720.0;
   // Add a red line object, from 1in 1in to 2in 2in
   AnnPolylineObject lineObj = new AnnPolylineObject();
   lineObj.Points.Add(LeadPointDHelper.Create(1 * inch, 1 * inch));
   lineObj.Points.Add(LeadPointDHelper.Create(2 * inch, 2 * inch));
   lineObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), LeadLengthDHelper.Create(1));
   container.Children.Add(lineObj);

   // Add a blue on yellow rectangle from 3in 3in to 4in 4in
   AnnRectangleObject rectObj = new AnnRectangleObject();
   rectObj.Rect = LeadRectDHelper.Create(3 * inch, 3 * inch, 1 * inch, 1 * inch);
   rectObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthDHelper.Create(1));
   rectObj.Fill = AnnSolidColorBrush.Create("Yellow");
   container.Children.Add(rectObj);

   // Show the container
   ShowContainer("Before save", container);

   // Create the codecs object to save and load annotations
   AnnCodecs codecs = new AnnCodecs();

   // Create a new instance of AnnSrializeOptions and Hook to the SerializeObject event
   AnnSerializeOptions serializeOptions = new AnnSerializeOptions();
   serializeOptions.SerializeObject += serializeOptions_SerializeObject;

   // Set it as our deserialize options
   codecs.SerializeOptions = serializeOptions;

   // Save the container
   string destFileName = @"container.xml";
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
   await codecs.SaveAsync(saveFile, container, AnnFormat.Annotations, 1);

   // delete the container
   container = null;

   // Load the container we just saved
   container = await codecs.LoadAsync(saveFile, 1);

   // Show it
   ShowContainer("After load", container);
}

void serializeOptions_SerializeObject(object sender, AnnSerializeObjectEventArgs e)
{
   AnnObject annObj = e.AnnObject;
   if (annObj.Id == AnnObject.PolylineObjectId)
   {
      Debug.WriteLine("skipping a polyline during save");
      e.SkipObject = true;
   }
}
必要条件

ターゲットプラットホーム

参照

参照

AnnSerializeOptionsメンバ
Leadtools.Annotations.Core名前空間
アノテーションファイル

   Leadtools.Annotations.Coreは、DocumentまたはMedicalツールキットのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能