예제 #1
0
        public Win2DIcon(INodeIcon icon, ICanvasControl canvasControl)
        {
            Guard.NotNull(icon, nameof(icon));

            name = icon.Name;

            LoadFile(icon, canvasControl.Device).ContinueWith(task => AttachBitmap(canvasControl, task));
        }
예제 #2
0
        protected override void Execute(bool isRedo)
        {
            oldIcon = Node.Icon;

            Node.ChangeIcon(newIcon);

            if (isRedo)
            {
                Node.Select();
            }
        }
예제 #3
0
        private static async Task <CanvasBitmap> LoadFile(INodeIcon icon, ICanvasResourceCreator device)
        {
            using (var stream = await icon.OpenAsStreamAsync())
            {
                if (stream != null)
                {
                    return(await CanvasBitmap.LoadAsync(device, stream.AsRandomAccessStream()).AsTask());
                }

                return(null);
            }
        }
예제 #4
0
        public static void ChangeIconTransactional(this NodeBase node, INodeIcon icon)
        {
            if (node.Document != null && !Equals(node.Icon, icon))
            {
                var transactionName = LocalizationManager.GetString("TransactionName_ChangeIcon");

                node.Document.MakeTransaction(transactionName, commands =>
                {
                    commands.Apply(new ChangeIconCommand(node, icon));
                });
            }
        }
예제 #5
0
 internal void ChangeIcon(INodeIcon newIcon)
 {
     Icon = newIcon;
 }
예제 #6
0
 public ChangeIconCommand(NodeBase nodeId, INodeIcon newIcon)
     : base(nodeId)
 {
     this.newIcon = newIcon;
 }
예제 #7
0
 public ChangeIconCommand(PropertiesBag properties, Document document)
     : base(properties, document)
 {
     newIcon = KeyIcon.TryParse(properties) ?? AttachmentIcon.TryParse(properties);
 }
예제 #8
0
 public bool Equals(INodeIcon other)
 {
     return(Equals(other as AttachmentIcon));
 }
예제 #9
0
 public bool Equals(INodeIcon other)
 {
     return(Equals(other as KeyIcon));
 }