/// <summary>
        /// Устанавливаем в канвас изображение типа Collage.Image
        /// </summary>
        /// <param name="img">Изображение типа Collage.Image</param>
        /// <param name="canvas">Канвас</param>
        void SetImageToCanvas(Collage.Image image, Canvas canvas)
        {
            canvas.Children.Clear();       //удаляем всё, что было внутри
            var img = new Image();         // создаём визуальный объект изображения

            img.Source = image.Img;        // устанавливаем источник из полученного изображеия
            canvas.Children.Add(img);      // и добавляем в канвас
            img.Stretch = Stretch.Uniform; //режим растягивания
            // устанавливаем параметры смещения и размеры в соответствии с полученный Collage.Image
            img.Width  = image.Width;
            img.Height = image.Height;
            Canvas.SetLeft(img, image.Left);
            Canvas.SetTop(img, image.Top);
            // установка обработчиков событий
            img.MouseDown  += Img_MouseDown;
            img.MouseMove  += Img_MouseMove;
            img.MouseUp    += Img_MouseUp;
            img.MouseLeave += Img_MouseLeave;
            img.MouseWheel += Img_MouseWheel;
        }
 private void Canvas_MouseDown(object sender, MouseButtonEventArgs e)
 {
     // если мы пребываем в режиме добавления изображения, то начинаем добавлять или заменять изображение в канвасе
     if (Mode == Mods.Add)
     {
         // установа режима ожидания сразу и нормального курсора обратно
         Mode   = Mods.Wait;
         Cursor = Cursors.Arrow;
         // определяем канвас, который вызвал событие и принимет изображение
         var canvas = sender as Canvas;
         // определяем номер канваса из его имени (canvas1, canvas2, canvas3, canvas4), отсекая первые 6 символов и оставляя лишь цифру
         int number = int.Parse(canvas.Name.Substring(6));
         // получаем текущий коллаж, с которым работаем
         var           clg = Collages[SelectedCollage];
         Collage.Image img = null;
         // если есть изображение, соответствующее этому канвасу, то заменяем его просто
         if (clg.Images.ContainsKey(number))
         {
             img     = clg.Images[number];
             img.Img = SelectedNewImage.Source;
         }
         else // иначе создаём новое Collage.Image
         {
             img = new Collage.Image()
             {
                 Img    = SelectedNewImage.Source,
                 Left   = 0,
                 Top    = 0,
                 Width  = SelectedNewImage.Source.Width,
                 Height = SelectedNewImage.Source.Height
             };
             clg.Images.Add(number, img);
         }
         // обновляем данные в самом канвасе
         SetImageToCanvas(img, canvas);
     }
 }