Beispiel #1
0
        private void OnGemCreated(GemManager sender, GemController gemController)
        {
            GemControllerWrapper wrapper = new GemControllerWrapper(gemController);

            DrawCanvas.Children.Add(wrapper.GemImage);
            DrawCanvas.Children.Add(wrapper.SpecialImage);
            wrapper.GemImage.MouseDown += Image_MouseDown;
            wrapper.OnOverEvent        += OnGemWrapperOver;
            gemControllers.Add(wrapper);
        }
Beispiel #2
0
 private void OnGemWrapperOver(GemControllerWrapper sender)
 {
     Dispatcher.Invoke(() =>
     {
         DrawCanvas.Children.Remove(sender.GemImage);
         DrawCanvas.Children.Remove(sender.SpecialImage);
         sender.GemImage.MouseDown -= Image_MouseDown;
         sender.OnOverEvent        -= OnGemWrapperOver;
         gemControllers.Remove(sender);
     });
 }
Beispiel #3
0
 private void Image_MouseDown(object sender, MouseButtonEventArgs e)
 {
     if (sender is Image)
     {
         Image img_sender = sender as Image;
         if (img_sender.Tag != null && img_sender.Tag is GemControllerWrapper)
         {
             selectedGem       = img_sender.Tag as GemControllerWrapper;
             mouseDownPosition = e.GetPosition(this);
         }
     }
 }
Beispiel #4
0
 private void Window_MouseUp(object sender, MouseButtonEventArgs e)
 {
     if (selectedGem != null)
     {
         Point     mousePos  = e.GetPosition(this);
         Direction direction = CalculateDirection(mousePos, mouseDownPosition);
         if (!selectedGem.GetConstrains().HasFlag(direction))
         {
             selectedGem.MoveTo(direction);
         }
         selectedGem = null;
     }
 }