示例#1
0
        private void AddBlockFromFile(string path)
        {
            Commands.DelegateCommand removeRemoveBlockClickEvent = new Commands.DelegateCommand(new Action <object>((_) =>
            {
                // 使用Lambda表达式传递一个完整的Action。
                // 删除图像块的Action
                // 在这里调用Origin的图片块扫描
                foreach (var block in ImageBlocks)
                {
                    if (block.BlockPath == path)
                    {
                        var deleteBlockPath = block.BlockPath;
                        ImageBlocks.Remove(block);
                        GC.Collect();
                        System.IO.File.Delete(deleteBlockPath);
                        ScanNumberOfImageBlocksClickEvent.Execute(null);
                        break;
                    }
                }
            }));
            var imageBlock = new Models.ImageBlock(path, removeRemoveBlockClickEvent);

            ImageBlocks.Add(imageBlock);
            ScanNumberOfImageBlocksClickEvent.Execute(null);
            App.Log.Info($"ImageBlock {path} has been added to {Name}");
        }
示例#2
0
 private void GetBlocks(XElement curNode)
 {
     if (curNode.Name.Equals(Xns + "img"))
     {
         int        id     = ImageBlocks.Count;
         ImageBlock iBlock = new ImageBlock(id, curNode, this);
         ImageBlocks.Add(iBlock);
         curNode.SetAttributeValue("id", iBlock.B_ID);
         Blocks.Add(iBlock);
     }
     foreach (XNode childNode in curNode.Nodes())
     {
         if (childNode is XText)
         {
             XText        textNode = childNode as XText;
             int          id       = ContentBlocks.Count;
             String       text     = textNode.Value;
             ContentBlock cBlock   = new ContentBlock(id, text, this);
             ContentBlocks.Add(cBlock);
             textNode.Value = cBlock.B_ID;
             Blocks.Add(cBlock);
         }
         else if (childNode is XElement)
         {
             GetBlocks(childNode as XElement);
         }
     }
 }