// drawing a comment rectangle - comment flyout when pressed public Rectangle DrawRectangle(Comment comment) { Rectangle rectangle = new Rectangle { Fill = new SolidColorBrush(comment.fill), Width = comment.width, Height = comment.height, Opacity = comment.opacity, RenderTransform = new RotateTransform { Angle = comment.angle } }; rectangle.DataContext = comment; Canvas.SetLeft(rectangle, comment.left); Canvas.SetTop(rectangle, comment.top); // Add flyout var flyout = new Flyout(); Style flyoutStyle = new Style(); flyoutStyle.TargetType = typeof(FlyoutPresenter); flyoutStyle.Setters.Add(new Setter(BackgroundProperty, new SolidColorBrush(comment.fill))); flyout.FlyoutPresenterStyle = flyoutStyle; // Add delete button Button deleteButton = new Button(); deleteButton.Content = new SymbolIcon(Symbol.Delete); deleteButton.Click += delegate(object e, RoutedEventArgs evt) { canvas.Children.Remove(rectangle); comments.Remove(comment); }; // Add canvas InkCanvas flyoutInkCanvas = new InkCanvas { Width = 250, Height = 250 }; flyoutInkCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Mouse | Windows.UI.Core.CoreInputDeviceTypes.Touch | Windows.UI.Core.CoreInputDeviceTypes.Pen; // Set up stroke container for serialization if (comment.ic != null) { flyoutInkCanvas.InkPresenter.StrokeContainer = comment.ic; } comment.ic = flyoutInkCanvas.InkPresenter.StrokeContainer; InkToolbar flyoutInkToolbar = new InkToolbar(); flyoutInkToolbar.TargetInkCanvas = flyoutInkCanvas; // Add panels StackPanel stackPanel = new StackPanel(); stackPanel.HorizontalAlignment = HorizontalAlignment.Center; stackPanel.VerticalAlignment = VerticalAlignment.Center; StackPanel rightAlignment = new StackPanel(); rightAlignment.HorizontalAlignment = HorizontalAlignment.Right; rightAlignment.Children.Add(deleteButton); stackPanel.Children.Add(rightAlignment); stackPanel.Children.Add(flyoutInkCanvas); stackPanel.Children.Add(flyoutInkToolbar); // Additional settings flyout.Content = stackPanel; //flyout.LightDismissOverlayMode = LightDismissOverlayMode.On; rectangle.ContextFlyout = flyout; // settings for dragging comments rectangle.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY; rectangle.ManipulationDelta += new ManipulationDeltaEventHandler(DragComment); canvas.Children.Add(rectangle); return(rectangle); }