diff --git a/InkCanvasForClass/InkCanvasForClass.csproj.user b/InkCanvasForClass/InkCanvasForClass.csproj.user index d9348c4..064a598 100644 --- a/InkCanvasForClass/InkCanvasForClass.csproj.user +++ b/InkCanvasForClass/InkCanvasForClass.csproj.user @@ -23,6 +23,9 @@ Code + + Code + @@ -49,6 +52,9 @@ Designer + + Designer + Designer diff --git a/InkCanvasForClass/MainWindow.xaml b/InkCanvasForClass/MainWindow.xaml index 7710c6d..060f80b 100644 --- a/InkCanvasForClass/MainWindow.xaml +++ b/InkCanvasForClass/MainWindow.xaml @@ -126,6 +126,10 @@ + + + + diff --git a/InkCanvasForClass/MainWindow_cs/MW_BoardControls.cs b/InkCanvasForClass/MainWindow_cs/MW_BoardControls.cs index 86b97d8..ebfebf3 100644 --- a/InkCanvasForClass/MainWindow_cs/MW_BoardControls.cs +++ b/InkCanvasForClass/MainWindow_cs/MW_BoardControls.cs @@ -320,7 +320,6 @@ namespace Ink_Canvas { BtnWhiteBoardSwitchNextR.Visibility = value ? Visibility.Collapsed : Visibility.Visible; BtnRightPageListWB.CornerRadius = value ? new CornerRadius(0, 5, 5, 0) : new CornerRadius(0); BtnWhiteboardAddRightSecondary.Visibility = value ? Visibility.Visible : Visibility.Collapsed; - BtnWhiteboardAddRight.Visibility = value ? Visibility.Collapsed : Visibility.Visible; } } diff --git a/InkCanvasForClass/MainWindow_cs/MW_ShapeDrawing.cs b/InkCanvasForClass/MainWindow_cs/MW_ShapeDrawing.cs index b5adaa8..ef30beb 100644 --- a/InkCanvasForClass/MainWindow_cs/MW_ShapeDrawing.cs +++ b/InkCanvasForClass/MainWindow_cs/MW_ShapeDrawing.cs @@ -1600,5 +1600,42 @@ namespace Ink_Canvas { return false; return true; } + + + #region ShapeDrawingV2 + + public enum ShapeDrawingType { + Line, + DottedLine, + DashedLine, + ArrowOneSide, + ArrowTwoSide, + Rectangle, + Ellipse, + PieEllipse, + Triangle, + RightTriangle, + Diamond, + Parallelogram, + FourLine, + Staff, + Axis2D, + Axis2DA, + Axis2DB, + Axis2DC, + Axis3D, + Hyperbola, + HyperbolaF, + Parabola, + ParabolaA, + ParabolaAF, + Cylinder, + Cube, + Cone, + EllipseC, + RectangleC + } + + #endregion } } \ No newline at end of file diff --git a/InkCanvasForClass/Popups/ShapeDrawingPopup.xaml b/InkCanvasForClass/Popups/ShapeDrawingPopup.xaml new file mode 100644 index 0000000..9f1f7e9 --- /dev/null +++ b/InkCanvasForClass/Popups/ShapeDrawingPopup.xaml @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/InkCanvasForClass/Popups/ShapeDrawingPopup.xaml.cs b/InkCanvasForClass/Popups/ShapeDrawingPopup.xaml.cs new file mode 100644 index 0000000..e4c1c32 --- /dev/null +++ b/InkCanvasForClass/Popups/ShapeDrawingPopup.xaml.cs @@ -0,0 +1,179 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Ink_Canvas.Popups { + + public partial class ShapeDrawingPopup : UserControl { + public ShapeDrawingPopup() { + InitializeComponent(); + ShapeDrawingItemsControl.ItemsSource = _items; + _items.Add(new ShapeDrawingItem() { + Name = "直线", + Image = FindResource("LineIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "虚线", + Image = FindResource("DashedLineIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "点虚线", + Image = FindResource("DottedLineIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "箭头", + Image = FindResource("ArrowLineIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "双箭头", + Image = FindResource("ArrowLineTwoSideIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "矩形", + Image = FindResource("RectIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "椭圆", + Image = FindResource("CircleIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "饼图形", + Image = FindResource("PieIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "三角形", + Image = FindResource("TriangleIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "直角三角", + Image = FindResource("RightTriangleIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "菱形", + Image = FindResource("DiamondIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "平行四边形", + Image = FindResource("ParallelogramIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "四线三格", + Image = FindResource("FourLineIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "五线谱", + Image = FindResource("FiveLineIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "平面坐标轴", + Image = FindResource("DefaultAxisIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "平面坐标轴2", + Image = FindResource("Axis2Icon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "平面坐标轴3", + Image = FindResource("Axis3Icon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "平面坐标轴4", + Image = FindResource("Axis4Icon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "三维坐标轴", + Image = FindResource("ThreeDimensionAxisIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "双曲线", + Image = FindResource("HyperbolaIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "带焦点的双曲线", + Image = FindResource("HyperbolaWithFocalPointIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "抛物线1", + Image = FindResource("ParabolaIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "抛物线2", + Image = FindResource("Parabola2Icon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "带焦点的抛物线2", + Image = FindResource("Parabola2WithFocalPointIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "圆柱体", + Image = FindResource("CylinderIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "立方体", + Image = FindResource("CubeIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "圆锥体", + Image = FindResource("ConeIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "带圆心的圆形", + Image = FindResource("CircleWithCenterPointIcon") as DrawingImage, + }); + _items.Add(new ShapeDrawingItem() { + Name = "带中心点的矩形", + Image = FindResource("RectWithCenterPointIcon") as DrawingImage, + }); + } + + private class ShapeDrawingItem { + public string Name { get; set; } + public DrawingImage Image { get; set; } + } + private ObservableCollection _items = new ObservableCollection(); + private bool isCloseButtonDown = false; + public event EventHandler ShapeDrawingPopupShouldCloseEvent; + private void CloseButtonBorder_MouseDown(object sender, MouseButtonEventArgs e) { + isCloseButtonDown = true; + CloseButtonBorder.Background = new SolidColorBrush(Color.FromArgb(34, 220, 38, 38)); + } + private void CloseButtonBorder_MouseLeave(object sender, MouseEventArgs e) { + isCloseButtonDown = false; + CloseButtonBorder.Background = new SolidColorBrush(Colors.Transparent); + } + private void CloseButtonBorder_MouseUp(object sender, MouseButtonEventArgs e) { + if (!isCloseButtonDown) return; + + CloseButtonBorder_MouseLeave(null, null); + ShapeDrawingPopupShouldCloseEvent?.Invoke(this,new RoutedEventArgs()); + } + private Border shapeDrawingButtonDownBorder = null; + private void ShapeDrawingButtonBorder_MouseDown(object sender, MouseButtonEventArgs e) { + if (shapeDrawingButtonDownBorder != null) return; + shapeDrawingButtonDownBorder = (Border)sender; + shapeDrawingButtonDownBorder.Background = new SolidColorBrush(Color.FromRgb(228, 228, 231)); + } + private void ShapeDrawingButtonBorder_MouseLeave(object sender, MouseEventArgs e) { + if (shapeDrawingButtonDownBorder == null || shapeDrawingButtonDownBorder != sender) return; + shapeDrawingButtonDownBorder.Background = new SolidColorBrush(Colors.Transparent); + shapeDrawingButtonDownBorder = null; + } + private void ShapeDrawingButtonBorder_MouseUp(object sender, MouseButtonEventArgs e) { + if (shapeDrawingButtonDownBorder == null || shapeDrawingButtonDownBorder != sender) return; + ShapeDrawingButtonBorder_MouseLeave(sender, null); + + } + } +}