Skip to content

Commit

Permalink
Fix bugs and get updates
Browse files Browse the repository at this point in the history
  • Loading branch information
WXRIW committed Sep 28, 2021
1 parent 7ea9c16 commit aa05822
Show file tree
Hide file tree
Showing 7 changed files with 193 additions and 29 deletions.
5 changes: 3 additions & 2 deletions Ink Canvas/ChangeLogWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,21 @@
xmlns:local="clr-namespace:Ink_Canvas" WindowStartupLocation="CenterScreen" ResizeMode="NoResize" ShowInTaskbar="False"
xmlns:ui="http://schemas.modernwpf.com/2019" FontFamily="Microsoft YaHei UI" Topmost="True"
mc:Ignorable="d" ui:WindowHelper.UseModernWindowStyle="True" Loaded="Window_Loaded" Closed="Window_Closed"
Title="" Height="350" Width="600">
Title="" Height="350" Width="700">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition/>
<RowDefinition Height="60"/>
</Grid.RowDefinitions>
<Label Content="已升级到最新版本" FontFamily="Microsoft YaHei UI" FontSize="26" Margin="20,0"/>
<Label Content="世界上最好用的 Ink Canvas 画板已升级到最新版本" FontFamily="Microsoft YaHei UI" FontSize="26" Margin="20,0"/>
<StackPanel Grid.Row="1">
<TextBlock Name="TextBlockChangeLogTitle" Text="更新日志" FontSize="18" FontWeight="Bold" Margin="35,10,35,0"/>
<TextBlock Name="TextBlockChangeLog" Text="" FontSize="14" Margin="55,5"/>
<TextBlock Name="TextBlockSuggestionTitle" Text="建议" FontSize="18" FontWeight="Bold" Margin="35,10,35,0"/>
<TextBlock Name="TextBlockSuggestion" Text="" FontSize="14" Margin="55,5"/>
</StackPanel>
<Label Name="LabelVersion" Grid.Row="2" VerticalContentAlignment="Center" FontSize="12" Margin="20,0"/>
<Button Content="确定" Grid.Row="2" HorizontalAlignment="Right" Margin="10" Width="100" FontFamily="Microsoft YaHei UI" Click="Button_Click"/>
</Grid>
</Window>
22 changes: 17 additions & 5 deletions Ink Canvas/ChangeLogWindow.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
Expand All @@ -27,13 +28,24 @@ public ChangeLogWindow()
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//Version 2.1.0-beta
//TextBlockChangeLog.Text = "" +
// "1. 修复使用画板时无法使用翻页笔的问题\n" +
// "2. 支持修改画笔粗细,支持显示画笔指针\n" +
// "3. 支持双指缩放和拖动手势\n" +
// "4. 添加“选择墨迹”功能,选中后可以对墨迹进行拖动,拉伸等操作\n" +
// "5. 添加画图功能(直线、箭头、矩形、椭圆)";
//TextBlockSuggestion.Text = "打开设置,点击“重置”中的“重置设置为推荐设置”,以提升教学体验!";

//Version 2.1.1-release
TextBlockChangeLog.Text = "" +
"1. 修复使用画板时无法使用翻页笔的问题\n" +
"2. 支持修改画笔粗细,支持显示画笔指针\n" +
"3. 支持双指缩放和拖动手势\n" +
"4. 添加“选择墨迹”功能,选中后可以对墨迹进行拖动,拉伸等操作\n" +
"5. 添加画图功能(直线、箭头、矩形、椭圆)";
"1. 修复部分情况下幻灯片放映翻页时墨迹保留的问题\n" +
"2. 支持选中后的缩放和拖动\n" +
"3. 修复部分模式下自动橡皮失效的问题\n" +
"4. 修复幻灯片放映时的部分问题";
TextBlockSuggestion.Text = "打开设置,点击“重置”中的“重置设置为推荐设置”,以提升教学体验!";

Version version = Assembly.GetExecutingAssembly().GetName().Version;
LabelVersion.Content = "Version: " + version.ToString();
}

private void Window_Closed(object sender, EventArgs e)
Expand Down
13 changes: 12 additions & 1 deletion Ink Canvas/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,13 @@
TouchMove="inkCanvas_TouchMove"
ManipulationDelta="Main_Grid_ManipulationDelta"
ManipulationCompleted="Main_Grid_ManipulationCompleted"
ManipulationInertiaStarting="inkCanvas_ManipulationInertiaStarting"
IsManipulationEnabled="True" EditingModeChanged="inkCanvas_EditingModeChanged"
PreviewTouchDown="inkCanvas_PreviewTouchDown"
PreviewTouchUp="inkCanvas_PreviewTouchUp"
MouseDown="inkCanvas_MouseDown" MouseMove="inkCanvas_MouseMove" MouseUp="inkCanvas_MouseUp"
ManipulationStarting="inkCanvas_ManipulationStarting">
ManipulationStarting="inkCanvas_ManipulationStarting"
SelectionChanged="inkCanvas_SelectionChanged">
<!--<InkCanvas.DefaultDrawingAttributes>
<DrawingAttributes StylusTip="Ellipse" Height="8" Width="4" IgnorePressure="False" FitToCurve="True" >
<DrawingAttributes.StylusTipTransform>
Expand All @@ -50,6 +52,15 @@
</DrawingAttributes>
</InkCanvas.DefaultDrawingAttributes>-->
</InkCanvas>
<Grid Name="GridInkCanvasSelectionCover" IsManipulationEnabled="True"
ManipulationStarting="GridInkCanvasSelectionCover_ManipulationStarting"
ManipulationCompleted="GridInkCanvasSelectionCover_ManipulationCompleted"
ManipulationDelta="GridInkCanvasSelectionCover_ManipulationDelta"
PreviewTouchDown="GridInkCanvasSelectionCover_PreviewTouchDown"
PreviewTouchUp="GridInkCanvasSelectionCover_PreviewTouchUp"
TouchDown="GridInkCanvasSelectionCover_TouchDown"
TouchUp="GridInkCanvasSelectionCover_TouchUp"
Background="#01FFFFFF" Opacity="0.01" Visibility="Collapsed"/>

<Border Name="BorderSettings" Background="White" BorderBrush="Black"
BorderThickness="1" CornerRadius="10"
Expand Down
178 changes: 159 additions & 19 deletions Ink Canvas/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,7 @@ private void inkCanvas_PreviewTouchDown(object sender, TouchEventArgs e)
//设备两个及两个以上,将画笔功能关闭
if (dec.Count > 1)
{
if (inkCanvas.EditingMode != InkCanvasEditingMode.None)
if (inkCanvas.EditingMode != InkCanvasEditingMode.None && inkCanvas.EditingMode != InkCanvasEditingMode.Select)
{
lastInkCanvasEditingMode = inkCanvas.EditingMode;
inkCanvas.EditingMode = InkCanvasEditingMode.None;
Expand All @@ -617,6 +617,11 @@ private void inkCanvas_ManipulationStarting(object sender, ManipulationStartingE
e.Mode = ManipulationModes.All;
}

private void inkCanvas_ManipulationInertiaStarting(object sender, ManipulationInertiaStartingEventArgs e)
{

}

private void Main_Grid_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
if (e.Manipulators.Count() == 0)
Expand Down Expand Up @@ -650,12 +655,26 @@ private void Main_Grid_ManipulationDelta(object sender, ManipulationDeltaEventAr
}
m.ScaleAt(scale.X, scale.Y, center.X, center.Y); // 缩放

foreach (Stroke stroke in inkCanvas.Strokes)
StrokeCollection strokes = inkCanvas.GetSelectedStrokes();
if (strokes.Count != 0)
{
stroke.Transform(m, false);
foreach (Stroke stroke in strokes)
{
stroke.Transform(m, false);

stroke.DrawingAttributes.Width *= md.Scale.X;
stroke.DrawingAttributes.Height *= md.Scale.Y;
stroke.DrawingAttributes.Width *= md.Scale.X;
stroke.DrawingAttributes.Height *= md.Scale.Y;
}
}
else
{
foreach (Stroke stroke in inkCanvas.Strokes)
{
stroke.Transform(m, false);

stroke.DrawingAttributes.Width *= md.Scale.X;
stroke.DrawingAttributes.Height *= md.Scale.Y;
}
}
}
}
Expand Down Expand Up @@ -883,6 +902,7 @@ private void TimerCheckPPT_Elapsed(object sender, ElapsedEventArgs e)

private void PptApplication_PresentationClose(Presentation Pres)
{
pptApplication = null;
timerCheckPPT.Start();
BtnPPTSlideShow.Visibility = Visibility.Collapsed;
BtnPPTSlideShowEnd.Visibility = Visibility.Collapsed;
Expand All @@ -892,6 +912,9 @@ private void PptApplication_SlideShowBegin(SlideShowWindow Wn)
{
Application.Current.Dispatcher.Invoke(() =>
{
slidescount = Wn.Presentation.Slides.Count;
memoryStreams = new MemoryStream[slidescount + 2];

StackPanelPPTControls.Visibility = Visibility.Visible;
BtnPPTSlideShow.Visibility = Visibility.Collapsed;
BtnPPTSlideShowEnd.Visibility = Visibility.Visible;
Expand All @@ -900,6 +923,11 @@ private void PptApplication_SlideShowBegin(SlideShowWindow Wn)
{
BtnHideInkCanvas_Click(BtnHideInkCanvas, null);
}
if (GridBackgroundCover.Visibility == Visibility.Visible)
{
currentMode = 0;
GridBackgroundCover.Visibility = Visibility.Hidden;
}
inkCanvas.Strokes.Clear();
});
previousSlideID = Wn.View.CurrentShowPosition;
Expand Down Expand Up @@ -1021,11 +1049,6 @@ private void BtnPPTSlideShow_Click(object sender, RoutedEventArgs e)
}
catch { }
})).Start();

if (currentMode == 1)
{
BtnSwitch_Click(BtnSwitch, e);
}
}

private void BtnPPTSlideShowEnd_Click(object sender, RoutedEventArgs e)
Expand Down Expand Up @@ -1384,14 +1407,6 @@ private void ToggleSwitchShowCursor_Toggled(object sender, RoutedEventArgs e)
SaveSettingsToFile();
}

private void BtnSelect_Click(object sender, RoutedEventArgs e)
{
forceEraser = true;
drawingShapeMode = 0;
inkCanvas.EditingMode = InkCanvasEditingMode.Select;
inkCanvas.IsManipulationEnabled = false;
}

int drawingShapeMode = 0;

private void BtnPen_Click(object sender, RoutedEventArgs e)
Expand Down Expand Up @@ -1440,7 +1455,10 @@ private void inkCanvas_TouchMove(object sender, TouchEventArgs e)
{
if (isLastTouchEraser)
{
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
if (inkCanvas.EditingMode != InkCanvasEditingMode.EraseByStroke)
{
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
}
return;
}
if (isWaitUntilNextTouchDown) return;
Expand Down Expand Up @@ -1663,6 +1681,128 @@ private void BtnResetToDefault_Click(object sender, RoutedEventArgs e)
});
})).Start();
}

private void BtnSelect_Click(object sender, RoutedEventArgs e)
{
forceEraser = true;
drawingShapeMode = 0;
inkCanvas.EditingMode = InkCanvasEditingMode.Select;
inkCanvas.IsManipulationEnabled = false;
}

private void inkCanvas_SelectionChanged(object sender, EventArgs e)
{
if (inkCanvas.GetSelectedStrokes().Count == 0)
{
GridInkCanvasSelectionCover.Visibility = Visibility.Collapsed;

}
else
{
GridInkCanvasSelectionCover.Visibility = Visibility.Visible;
//GridInkCanvasSelectionCover.Height = inkCanvas.GetSelectionBounds().Height;
//GridInkCanvasSelectionCover.Width = inkCanvas.GetSelectionBounds().Width;
//GridInkCanvasSelectionCover.Margin = new Thickness(inkCanvas.GetSelectionBounds().Left, inkCanvas.GetSelectionBounds().Top, 0, 0);
}
}

private void GridInkCanvasSelectionCover_ManipulationStarting(object sender, ManipulationStartingEventArgs e)
{
e.Mode = ManipulationModes.All;
}

private void GridInkCanvasSelectionCover_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{

}

private void GridInkCanvasSelectionCover_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
if (dec.Count >= 1)
{
ManipulationDelta md = e.DeltaManipulation;
Vector trans = md.Translation; // 获得位移矢量
double rotate = md.Rotation; // 获得旋转角度
Vector scale = md.Scale; // 获得缩放倍数

Matrix m = new Matrix();

// Find center of element and then transform to get current location of center
FrameworkElement fe = e.Source as FrameworkElement;
Point center = new Point(fe.ActualWidth / 2, fe.ActualHeight / 2);
center = m.Transform(center); // 转换为矩阵缩放和旋转的中心点

// Update matrix to reflect translation/rotation
m.Translate(trans.X, trans.Y); // 移动
if (Settings.Gesture.IsEnableTwoFingerRotation)
{
m.RotateAt(rotate, center.X, center.Y); // 旋转
}
m.ScaleAt(scale.X, scale.Y, center.X, center.Y); // 缩放

StrokeCollection strokes = inkCanvas.GetSelectedStrokes();
foreach (Stroke stroke in strokes)
{
stroke.Transform(m, false);

stroke.DrawingAttributes.Width *= md.Scale.X;
stroke.DrawingAttributes.Height *= md.Scale.Y;
}
}
}

private void GridInkCanvasSelectionCover_TouchDown(object sender, TouchEventArgs e)
{
}

private void GridInkCanvasSelectionCover_TouchUp(object sender, TouchEventArgs e)
{
}

Point lastTouchPointOnGridInkCanvasCover = new Point(0, 0);
private void GridInkCanvasSelectionCover_PreviewTouchDown(object sender, TouchEventArgs e)
{
dec.Add(e.TouchDevice.Id);
//设备1个的时候,记录中心点
if (dec.Count == 1)
{
TouchPoint touchPoint = e.GetTouchPoint(null);
centerPoint = touchPoint.Position;
lastTouchPointOnGridInkCanvasCover = touchPoint.Position;
}
////设备两个及两个以上,将画笔功能关闭
//if (dec.Count > 1)
//{
// if (inkCanvas.EditingMode != InkCanvasEditingMode.None && inkCanvas.EditingMode != InkCanvasEditingMode.Select)
// {
// lastInkCanvasEditingMode = inkCanvas.EditingMode;
// inkCanvas.EditingMode = InkCanvasEditingMode.None;
// }
//}
}

private void GridInkCanvasSelectionCover_PreviewTouchUp(object sender, TouchEventArgs e)
{
if (lastTouchPointOnGridInkCanvasCover == e.GetTouchPoint(null).Position)
{
if (lastTouchPointOnGridInkCanvasCover.X < inkCanvas.GetSelectionBounds().Left ||
lastTouchPointOnGridInkCanvasCover.Y < inkCanvas.GetSelectionBounds().Top ||
lastTouchPointOnGridInkCanvasCover.X > inkCanvas.GetSelectionBounds().Right||
lastTouchPointOnGridInkCanvasCover.Y > inkCanvas.GetSelectionBounds().Bottom)
{
inkCanvas.Select(new StrokeCollection());
}
}
////手势完成后切回之前的状态
//if (dec.Count > 1)
//{
// if (inkCanvas.EditingMode == InkCanvasEditingMode.None)
// {
// inkCanvas.EditingMode = lastInkCanvasEditingMode;
// }
//}
dec.Remove(e.TouchDevice.Id);
}
}

enum HotkeyModifiers
Expand Down
4 changes: 2 additions & 2 deletions Ink Canvas/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.1.0.0")]
[assembly: AssemblyFileVersion("2.1.0.0")]
[assembly: AssemblyVersion("2.1.1.0")]
[assembly: AssemblyFileVersion("2.1.1.0")]
Binary file added Ink Canvas/logo2 (Original).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Ink Canvas/logo2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit aa05822

Please sign in to comment.