[update] 设置界面更新,还需要继续完善,其他一些小修复。背景面板下次commit再交吧
This commit is contained in:
parent
870440a6a2
commit
f9bf8db659
File diff suppressed because one or more lines are too long
@ -169,7 +169,7 @@ namespace Ink_Canvas {
|
|||||||
//加载设置
|
//加载设置
|
||||||
LoadSettings(true);
|
LoadSettings(true);
|
||||||
// HasNewUpdateWindow hasNewUpdateWindow = new HasNewUpdateWindow();
|
// HasNewUpdateWindow hasNewUpdateWindow = new HasNewUpdateWindow();
|
||||||
if (Environment.Is64BitProcess) GroupBoxInkRecognition.Visibility = Visibility.Collapsed;
|
if (Environment.Is64BitProcess) SettingsInkRecognitionGroupBox.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
ThemeManager.Current.ApplicationTheme = ApplicationTheme.Light;
|
ThemeManager.Current.ApplicationTheme = ApplicationTheme.Light;
|
||||||
SystemEvents_UserPreferenceChanged(null, null);
|
SystemEvents_UserPreferenceChanged(null, null);
|
||||||
|
@ -282,14 +282,14 @@ namespace Ink_Canvas {
|
|||||||
AnimationsHelper.HideWithSlideAndFade(BoardBorderRightPageListView);
|
AnimationsHelper.HideWithSlideAndFade(BoardBorderRightPageListView);
|
||||||
|
|
||||||
if (BorderSettings.Visibility == Visibility.Visible) {
|
if (BorderSettings.Visibility == Visibility.Visible) {
|
||||||
BorderSettingsMask.IsHitTestVisible = false;
|
SettingsOverlay.IsHitTestVisible = false;
|
||||||
BorderSettingsMask.Background = null;
|
SettingsOverlay.Background = null;
|
||||||
var sb = new Storyboard();
|
var sb = new Storyboard();
|
||||||
|
|
||||||
// 滑动动画
|
// 滑动动画
|
||||||
var slideAnimation = new DoubleAnimation {
|
var slideAnimation = new DoubleAnimation {
|
||||||
From = 0, // 滑动距离
|
From = 0, // 滑动距离
|
||||||
To = BorderSettings.RenderTransform.Value.OffsetX - 440,
|
To = BorderSettings.RenderTransform.Value.OffsetX - 490,
|
||||||
Duration = TimeSpan.FromSeconds(0.6)
|
Duration = TimeSpan.FromSeconds(0.6)
|
||||||
};
|
};
|
||||||
slideAnimation.EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut };
|
slideAnimation.EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut };
|
||||||
@ -1575,14 +1575,14 @@ namespace Ink_Canvas {
|
|||||||
HideSubPanels();
|
HideSubPanels();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BorderSettingsMask.IsHitTestVisible = true;
|
SettingsOverlay.IsHitTestVisible = true;
|
||||||
BorderSettingsMask.Background = new SolidColorBrush(Color.FromArgb(1, 0, 0, 0));
|
SettingsOverlay.Background = new SolidColorBrush(Color.FromArgb(1, 0, 0, 0));
|
||||||
SettingsPanelScrollViewer.ScrollToTop();
|
SettingsPanelScrollViewer.ScrollToTop();
|
||||||
var sb = new Storyboard();
|
var sb = new Storyboard();
|
||||||
|
|
||||||
// 滑动动画
|
// 滑动动画
|
||||||
var slideAnimation = new DoubleAnimation {
|
var slideAnimation = new DoubleAnimation {
|
||||||
From = BorderSettings.RenderTransform.Value.OffsetX - 440, // 滑动距离
|
From = BorderSettings.RenderTransform.Value.OffsetX - 490, // 滑动距离
|
||||||
To = 0,
|
To = 0,
|
||||||
Duration = TimeSpan.FromSeconds(0.6)
|
Duration = TimeSpan.FromSeconds(0.6)
|
||||||
};
|
};
|
||||||
|
@ -219,8 +219,27 @@ namespace Ink_Canvas {
|
|||||||
if (!isLoaded) return;
|
if (!isLoaded) return;
|
||||||
Settings.Appearance.EnableViewboxBlackBoardScaleTransform =
|
Settings.Appearance.EnableViewboxBlackBoardScaleTransform =
|
||||||
ToggleSwitchEnableViewboxBlackBoardScaleTransform.IsOn;
|
ToggleSwitchEnableViewboxBlackBoardScaleTransform.IsOn;
|
||||||
|
|
||||||
|
if (Settings.Appearance.EnableViewboxBlackBoardScaleTransform) // 画板 UI 缩放 80%
|
||||||
|
{
|
||||||
|
ViewboxBlackboardLeftSideScaleTransform.ScaleX = 0.8;
|
||||||
|
ViewboxBlackboardLeftSideScaleTransform.ScaleY = 0.8;
|
||||||
|
ViewboxBlackboardCenterSideScaleTransform.ScaleX = 0.8;
|
||||||
|
ViewboxBlackboardCenterSideScaleTransform.ScaleY = 0.8;
|
||||||
|
ViewboxBlackboardRightSideScaleTransform.ScaleX = 0.8;
|
||||||
|
ViewboxBlackboardRightSideScaleTransform.ScaleY = 0.8;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ViewboxBlackboardLeftSideScaleTransform.ScaleX = 1;
|
||||||
|
ViewboxBlackboardLeftSideScaleTransform.ScaleY = 1;
|
||||||
|
ViewboxBlackboardCenterSideScaleTransform.ScaleX = 1;
|
||||||
|
ViewboxBlackboardCenterSideScaleTransform.ScaleY = 1;
|
||||||
|
ViewboxBlackboardRightSideScaleTransform.ScaleX = 1;
|
||||||
|
ViewboxBlackboardRightSideScaleTransform.ScaleY = 1;
|
||||||
|
}
|
||||||
|
|
||||||
SaveSettingsToFile();
|
SaveSettingsToFile();
|
||||||
LoadSettings();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComboBoxFloatingBarImg_SelectionChanged(object sender, RoutedEventArgs e) {
|
public void ComboBoxFloatingBarImg_SelectionChanged(object sender, RoutedEventArgs e) {
|
||||||
@ -277,7 +296,6 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SaveSettingsToFile();
|
SaveSettingsToFile();
|
||||||
LoadSettings();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ToggleSwitchEnableChickenSoupInWhiteboardMode_Toggled(object sender, RoutedEventArgs e) {
|
private void ToggleSwitchEnableChickenSoupInWhiteboardMode_Toggled(object sender, RoutedEventArgs e) {
|
||||||
@ -292,7 +310,6 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SaveSettingsToFile();
|
SaveSettingsToFile();
|
||||||
LoadSettings();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//[Obsolete]
|
//[Obsolete]
|
||||||
@ -1014,11 +1031,11 @@ namespace Ink_Canvas {
|
|||||||
Settings.Automation.IsAutoFoldInPPTSlideShow = ToggleSwitchAutoFoldInPPTSlideShow.IsOn;
|
Settings.Automation.IsAutoFoldInPPTSlideShow = ToggleSwitchAutoFoldInPPTSlideShow.IsOn;
|
||||||
if (Settings.Automation.IsAutoFoldInPPTSlideShow)
|
if (Settings.Automation.IsAutoFoldInPPTSlideShow)
|
||||||
{
|
{
|
||||||
SettingsPPTInkingAndAutoFoldExplictBorder.Visibility = Visibility.Visible;
|
SettingsPPTInkingAndAutoFoldExplictBorder.IsOpen = true;
|
||||||
SettingsShowCanvasAtNewSlideShowStackPanel.Opacity = 0.5;
|
SettingsShowCanvasAtNewSlideShowStackPanel.Opacity = 0.5;
|
||||||
SettingsShowCanvasAtNewSlideShowStackPanel.IsHitTestVisible = false;
|
SettingsShowCanvasAtNewSlideShowStackPanel.IsHitTestVisible = false;
|
||||||
} else {
|
} else {
|
||||||
SettingsPPTInkingAndAutoFoldExplictBorder.Visibility = Visibility.Collapsed;
|
SettingsPPTInkingAndAutoFoldExplictBorder.IsOpen = false;
|
||||||
SettingsShowCanvasAtNewSlideShowStackPanel.Opacity = 1;
|
SettingsShowCanvasAtNewSlideShowStackPanel.Opacity = 1;
|
||||||
SettingsShowCanvasAtNewSlideShowStackPanel.IsHitTestVisible = true;
|
SettingsShowCanvasAtNewSlideShowStackPanel.IsHitTestVisible = true;
|
||||||
}
|
}
|
||||||
@ -1343,6 +1360,54 @@ namespace Ink_Canvas {
|
|||||||
SaveSettingsToFile();
|
SaveSettingsToFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ToggleSwitchDisableGestureEraser_Toggled(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!isLoaded) return;
|
||||||
|
Settings.Gesture.DisableGestureEraser = ToggleSwitchDisableGestureEraser.IsOn;
|
||||||
|
if (Settings.Gesture.DisableGestureEraser) {
|
||||||
|
GestureEraserSettingsItemsPanel.Opacity = 0.5;
|
||||||
|
GestureEraserSettingsItemsPanel.IsHitTestVisible = false;
|
||||||
|
SettingsGestureEraserDisabledBorder.IsOpen = true;
|
||||||
|
} else {
|
||||||
|
GestureEraserSettingsItemsPanel.Opacity = 1;
|
||||||
|
GestureEraserSettingsItemsPanel.IsHitTestVisible = true;
|
||||||
|
SettingsGestureEraserDisabledBorder.IsOpen = false;
|
||||||
|
}
|
||||||
|
SaveSettingsToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ComboBoxDefaultMultiPointHandWriting_SelectionChanged(object sender, RoutedEventArgs e) {
|
||||||
|
if (!isLoaded) return;
|
||||||
|
Settings.Gesture.DefaultMultiPointHandWritingMode = ComboBoxDefaultMultiPointHandWriting.SelectedIndex;
|
||||||
|
SaveSettingsToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleSwitchHideCursorWhenUsingTouchDevice_Toggled(object sender, RoutedEventArgs e) {
|
||||||
|
if (!isLoaded) return;
|
||||||
|
Settings.Gesture.HideCursorWhenUsingTouchDevice = ToggleSwitchHideCursorWhenUsingTouchDevice.IsOn;
|
||||||
|
SaveSettingsToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleSwitchEnableMouseGesture_Toggled(object sender, RoutedEventArgs e) {
|
||||||
|
if (!isLoaded) return;
|
||||||
|
Settings.Gesture.EnableMouseGesture = ToggleSwitchEnableMouseGesture.IsOn;
|
||||||
|
SaveSettingsToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleSwitchEnableMouseRightBtnGesture_Toggled(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!isLoaded) return;
|
||||||
|
Settings.Gesture.EnableMouseRightBtnGesture = ToggleSwitchEnableMouseRightBtnGesture.IsOn;
|
||||||
|
SaveSettingsToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleSwitchEnableMouseWheelGesture_Toggled(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!isLoaded) return;
|
||||||
|
Settings.Gesture.EnableMouseWheelGesture = ToggleSwitchEnableMouseWheelGesture.IsOn;
|
||||||
|
SaveSettingsToFile();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Reset
|
#region Reset
|
||||||
@ -1451,6 +1516,12 @@ namespace Ink_Canvas {
|
|||||||
Settings.Gesture.IsEnableTwoFingerZoom = false;
|
Settings.Gesture.IsEnableTwoFingerZoom = false;
|
||||||
Settings.Gesture.IsEnableTwoFingerRotation = false;
|
Settings.Gesture.IsEnableTwoFingerRotation = false;
|
||||||
Settings.Gesture.IsEnableTwoFingerRotationOnSelection = false;
|
Settings.Gesture.IsEnableTwoFingerRotationOnSelection = false;
|
||||||
|
Settings.Gesture.DisableGestureEraser = true;
|
||||||
|
Settings.Gesture.DefaultMultiPointHandWritingMode = 2;
|
||||||
|
Settings.Gesture.HideCursorWhenUsingTouchDevice = true;
|
||||||
|
Settings.Gesture.EnableMouseGesture = true;
|
||||||
|
Settings.Gesture.EnableMouseRightBtnGesture = true;
|
||||||
|
Settings.Gesture.EnableMouseWheelGesture = true;
|
||||||
|
|
||||||
Settings.InkToShape.IsInkToShapeEnabled = true;
|
Settings.InkToShape.IsInkToShapeEnabled = true;
|
||||||
Settings.InkToShape.IsInkToShapeNoFakePressureRectangle = false;
|
Settings.InkToShape.IsInkToShapeNoFakePressureRectangle = false;
|
||||||
@ -1648,6 +1719,13 @@ namespace Ink_Canvas {
|
|||||||
SaveSettingsToFile();
|
SaveSettingsToFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ToggleSwitchEnsureFloatingBarVisibleInScreen_Toggled(object sender, RoutedEventArgs e) {
|
||||||
|
if (!isLoaded) return;
|
||||||
|
Settings.Advanced.IsEnableDPIChangeDetection = ToggleSwitchEnsureFloatingBarVisibleInScreen.IsOn;
|
||||||
|
Settings.Advanced.IsEnableResolutionChangeDetection = ToggleSwitchEnsureFloatingBarVisibleInScreen.IsOn;
|
||||||
|
SaveSettingsToFile();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region RandSettings
|
#region RandSettings
|
||||||
@ -1674,6 +1752,179 @@ namespace Ink_Canvas {
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region SettingsPane
|
||||||
|
|
||||||
|
public void SettingsPane_ScrollChanged(object sender, RoutedEventArgs e) {
|
||||||
|
UpdateSettingsIndexSidebarDisplayStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateSettingsIndexSidebarDisplayStatus() {
|
||||||
|
|
||||||
|
if (Math.Truncate(SettingsAboutGroupBox.MinHeight) != Math.Truncate(SettingsPanelScrollViewer.ActualHeight)) SettingsAboutGroupBox.MinHeight = SettingsPanelScrollViewer.ActualHeight;
|
||||||
|
|
||||||
|
SettingsStartupJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsStartupJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
SettingsCanvasJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsCanvasJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
SettingsGestureJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsGestureJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
SettingsInkRecognitionJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsInkRecognitionJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
SettingsAppearanceJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsAppearanceJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
SettingsPPTJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsPPTJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
SettingsAdvancedJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsAdvancedJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
SettingsAutomationJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsAutomationJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
SettingsRandWindowJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsRandWindowJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
SettingsAboutJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 0, 0);
|
||||||
|
SettingsAboutJumpToGroupBoxButton.Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
|
||||||
|
var SettingsStartupGroupBoxTransform = SettingsStartupGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var SettingsStartupGroupBoxTopPosition = SettingsStartupGroupBoxTransform.Transform(new Point(0, 0));
|
||||||
|
var SettingsStartupGroupBoxBottomPosition = SettingsStartupGroupBoxTransform.Transform(new Point(0, SettingsStartupGroupBox.ActualHeight));
|
||||||
|
|
||||||
|
var SettingsCanvasGroupBoxTransform = SettingsCanvasGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var SettingsCanvasGroupBoxTopPosition = SettingsCanvasGroupBoxTransform.Transform(new Point(0, 0));
|
||||||
|
var SettingsCanvasGroupBoxBottomPosition = SettingsCanvasGroupBoxTransform.Transform(new Point(0, SettingsCanvasGroupBox.ActualHeight));
|
||||||
|
|
||||||
|
var SettingsGestureGroupBoxTransform = SettingsGestureGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var SettingsGestureGroupBoxTopPosition = SettingsGestureGroupBoxTransform.Transform(new Point(0, 0));
|
||||||
|
var SettingsGestureGroupBoxBottomPosition = SettingsGestureGroupBoxTransform.Transform(new Point(0, SettingsGestureGroupBox.ActualHeight));
|
||||||
|
|
||||||
|
var SettingsInkRecognitionGroupBoxTransform = SettingsInkRecognitionGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var SettingsInkRecognitionGroupBoxTopPosition = SettingsInkRecognitionGroupBoxTransform.Transform(new Point(0, 0));
|
||||||
|
var SettingsInkRecognitionGroupBoxBottomPosition = SettingsInkRecognitionGroupBoxTransform.Transform(new Point(0, SettingsInkRecognitionGroupBox.ActualHeight));
|
||||||
|
|
||||||
|
var SettingsAppearanceGroupBoxTransform = SettingsAppearanceGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var SettingsAppearanceGroupBoxTopPosition = SettingsAppearanceGroupBoxTransform.Transform(new Point(0, 0));
|
||||||
|
var SettingsAppearanceGroupBoxBottomPosition = SettingsAppearanceGroupBoxTransform.Transform(new Point(0, SettingsAppearanceGroupBox.ActualHeight));
|
||||||
|
|
||||||
|
var SettingsPPTGroupBoxTransform = SettingsPPTGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var SettingsPPTGroupBoxTopPosition = SettingsPPTGroupBoxTransform.Transform(new Point(0, 0));
|
||||||
|
var SettingsPPTGroupBoxBottomPosition = SettingsPPTGroupBoxTransform.Transform(new Point(0, SettingsPPTGroupBox.ActualHeight));
|
||||||
|
|
||||||
|
var SettingsAdvancedGroupBoxTransform = SettingsAdvancedGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var SettingsAdvancedGroupBoxTopPosition = SettingsAdvancedGroupBoxTransform.Transform(new Point(0, 0));
|
||||||
|
var SettingsAdvancedGroupBoxBottomPosition = SettingsAdvancedGroupBoxTransform.Transform(new Point(0, SettingsAdvancedGroupBox.ActualHeight));
|
||||||
|
|
||||||
|
var SettingsAutomationGroupBoxTransform = SettingsAutomationGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var SettingsAutomationGroupBoxTopPosition = SettingsAutomationGroupBoxTransform.Transform(new Point(0, 0));
|
||||||
|
var SettingsAutomationGroupBoxBottomPosition = SettingsAutomationGroupBoxTransform.Transform(new Point(0, SettingsAutomationGroupBox.ActualHeight));
|
||||||
|
|
||||||
|
var SettingsRandWindowGroupBoxTransform = SettingsRandWindowGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var SettingsRandWindowGroupBoxTopPosition = SettingsRandWindowGroupBoxTransform.Transform(new Point(0, 0));
|
||||||
|
var SettingsRandWindowGroupBoxBottomPosition = SettingsRandWindowGroupBoxTransform.Transform(new Point(0, SettingsRandWindowGroupBox.ActualHeight));
|
||||||
|
|
||||||
|
if (SettingsStartupGroupBoxTopPosition.Y < SettingsPanelScrollViewer.ActualHeight /2 && SettingsStartupGroupBoxBottomPosition.Y > 50) {
|
||||||
|
SettingsStartupJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsStartupJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
} else if (SettingsCanvasGroupBoxTopPosition.Y < SettingsPanelScrollViewer.ActualHeight / 2 && SettingsCanvasGroupBoxBottomPosition.Y > 50) {
|
||||||
|
SettingsCanvasJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsCanvasJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
} else if (SettingsGestureGroupBoxTopPosition.Y < SettingsPanelScrollViewer.ActualHeight / 2 && SettingsGestureGroupBoxBottomPosition.Y > 50) {
|
||||||
|
SettingsGestureJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsGestureJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
} else if (SettingsInkRecognitionGroupBoxTopPosition.Y < SettingsPanelScrollViewer.ActualHeight / 2 && SettingsInkRecognitionGroupBoxBottomPosition.Y > 50) {
|
||||||
|
SettingsInkRecognitionJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsInkRecognitionJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
} else if (SettingsAppearanceGroupBoxTopPosition.Y < SettingsPanelScrollViewer.ActualHeight / 2 && SettingsAppearanceGroupBoxBottomPosition.Y > 50) {
|
||||||
|
SettingsAppearanceJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsAppearanceJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
} else if (SettingsPPTGroupBoxTopPosition.Y < SettingsPanelScrollViewer.ActualHeight / 2 && SettingsPPTGroupBoxBottomPosition.Y > 50) {
|
||||||
|
SettingsPPTJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsPPTJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
} else if (SettingsAdvancedGroupBoxTopPosition.Y < SettingsPanelScrollViewer.ActualHeight * 0.9 && SettingsAdvancedGroupBoxBottomPosition.Y > 50) {
|
||||||
|
SettingsAdvancedJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsAdvancedJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
} else if (SettingsAutomationGroupBoxTopPosition.Y < SettingsPanelScrollViewer.ActualHeight * 0.9 && SettingsAutomationGroupBoxBottomPosition.Y > 50) {
|
||||||
|
SettingsAutomationJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsAutomationJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
} else if (SettingsRandWindowGroupBoxTopPosition.Y < SettingsPanelScrollViewer.ActualHeight * 0.9 && SettingsRandWindowGroupBoxBottomPosition.Y > 50) {
|
||||||
|
SettingsRandWindowJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsRandWindowJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
} else {
|
||||||
|
SettingsAboutJumpToGroupBoxButton.BorderThickness = new Thickness(0, 0, 4, 0);
|
||||||
|
SettingsAboutJumpToGroupBoxButton.Background = new SolidColorBrush(Color.FromRgb(39, 39, 42));
|
||||||
|
}
|
||||||
|
|
||||||
|
Trace.WriteLine(SettingsRandWindowGroupBoxBottomPosition.Y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsStartupJumpToGroupBox(object sender, MouseButtonEventArgs e) {
|
||||||
|
var transform = SettingsStartupGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsCanvasJumpToGroupBox(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var transform = SettingsCanvasGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsGestureJumpToGroupBox(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var transform = SettingsGestureGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsInkRecognitionJumpToGroupBox(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var transform = SettingsInkRecognitionGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsAppearanceJumpToGroupBox(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var transform = SettingsAppearanceGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsPPTJumpToGroupBox(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var transform = SettingsPPTGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsAdvancedJumpToGroupBox(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var transform = SettingsAdvancedGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsAutomationJumpToGroupBox(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var transform = SettingsAutomationGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsRandWindowJumpToGroupBox(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var transform = SettingsRandWindowGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SettingsAboutJumpToGroupBox(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var transform = SettingsAboutGroupBox.TransformToVisual(SettingsPanelScrollViewer);
|
||||||
|
var position = transform.Transform(new Point(0, 0));
|
||||||
|
SettingsPanelScrollViewer.ScrollToVerticalOffset(SettingsPanelScrollViewer.VerticalOffset + position.Y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
public static void SaveSettingsToFile() {
|
public static void SaveSettingsToFile() {
|
||||||
var text = JsonConvert.SerializeObject(Settings, Formatting.Indented);
|
var text = JsonConvert.SerializeObject(Settings, Formatting.Indented);
|
||||||
try {
|
try {
|
||||||
|
@ -3,6 +3,7 @@ using Ink_Canvas.Helpers;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using OSVersionExtension;
|
using OSVersionExtension;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
@ -180,21 +181,21 @@ namespace Ink_Canvas {
|
|||||||
|
|
||||||
if (Settings.Appearance.EnableViewboxBlackBoardScaleTransform) // 画板 UI 缩放 80%
|
if (Settings.Appearance.EnableViewboxBlackBoardScaleTransform) // 画板 UI 缩放 80%
|
||||||
{
|
{
|
||||||
//ViewboxBlackboardLeftSideScaleTransform.ScaleX = 0.8;
|
ViewboxBlackboardLeftSideScaleTransform.ScaleX = 0.8;
|
||||||
//ViewboxBlackboardLeftSideScaleTransform.ScaleY = 0.8;
|
ViewboxBlackboardLeftSideScaleTransform.ScaleY = 0.8;
|
||||||
ViewboxBlackboardCenterSideScaleTransform.ScaleX = 0.8;
|
ViewboxBlackboardCenterSideScaleTransform.ScaleX = 0.8;
|
||||||
ViewboxBlackboardCenterSideScaleTransform.ScaleY = 0.8;
|
ViewboxBlackboardCenterSideScaleTransform.ScaleY = 0.8;
|
||||||
//ViewboxBlackboardRightSideScaleTransform.ScaleX = 0.8;
|
ViewboxBlackboardRightSideScaleTransform.ScaleX = 0.8;
|
||||||
//ViewboxBlackboardRightSideScaleTransform.ScaleY = 0.8;
|
ViewboxBlackboardRightSideScaleTransform.ScaleY = 0.8;
|
||||||
|
|
||||||
ToggleSwitchEnableViewboxBlackBoardScaleTransform.IsOn = true;
|
ToggleSwitchEnableViewboxBlackBoardScaleTransform.IsOn = true;
|
||||||
} else {
|
} else {
|
||||||
//ViewboxBlackboardLeftSideScaleTransform.ScaleX = 1;
|
ViewboxBlackboardLeftSideScaleTransform.ScaleX = 1;
|
||||||
//ViewboxBlackboardLeftSideScaleTransform.ScaleY = 1;
|
ViewboxBlackboardLeftSideScaleTransform.ScaleY = 1;
|
||||||
ViewboxBlackboardCenterSideScaleTransform.ScaleX = 1;
|
ViewboxBlackboardCenterSideScaleTransform.ScaleX = 1;
|
||||||
ViewboxBlackboardCenterSideScaleTransform.ScaleY = 1;
|
ViewboxBlackboardCenterSideScaleTransform.ScaleY = 1;
|
||||||
//ViewboxBlackboardRightSideScaleTransform.ScaleX = 1;
|
ViewboxBlackboardRightSideScaleTransform.ScaleX = 1;
|
||||||
//ViewboxBlackboardRightSideScaleTransform.ScaleY = 1;
|
ViewboxBlackboardRightSideScaleTransform.ScaleY = 1;
|
||||||
|
|
||||||
ToggleSwitchEnableViewboxBlackBoardScaleTransform.IsOn = false;
|
ToggleSwitchEnableViewboxBlackBoardScaleTransform.IsOn = false;
|
||||||
}
|
}
|
||||||
@ -383,20 +384,42 @@ namespace Ink_Canvas {
|
|||||||
ToggleSwitchEnableTwoFingerRotationOnSelection.IsOn =
|
ToggleSwitchEnableTwoFingerRotationOnSelection.IsOn =
|
||||||
Settings.Gesture.IsEnableTwoFingerRotationOnSelection;
|
Settings.Gesture.IsEnableTwoFingerRotationOnSelection;
|
||||||
|
|
||||||
if (Settings.Gesture.AutoSwitchTwoFingerGesture) {
|
//if (Settings.Gesture.AutoSwitchTwoFingerGesture) {
|
||||||
if (Topmost) {
|
// if (Topmost) {
|
||||||
ToggleSwitchEnableTwoFingerTranslate.IsOn = false;
|
// ToggleSwitchEnableTwoFingerTranslate.IsOn = false;
|
||||||
BoardToggleSwitchEnableTwoFingerTranslate.IsOn = false;
|
// BoardToggleSwitchEnableTwoFingerTranslate.IsOn = false;
|
||||||
Settings.Gesture.IsEnableTwoFingerTranslate = false;
|
// Settings.Gesture.IsEnableTwoFingerTranslate = false;
|
||||||
if (!isInMultiTouchMode) ToggleSwitchEnableMultiTouchMode.IsOn = true;
|
// if (!isInMultiTouchMode) ToggleSwitchEnableMultiTouchMode.IsOn = true;
|
||||||
} else {
|
// } else {
|
||||||
ToggleSwitchEnableTwoFingerTranslate.IsOn = true;
|
// ToggleSwitchEnableTwoFingerTranslate.IsOn = true;
|
||||||
BoardToggleSwitchEnableTwoFingerTranslate.IsOn = true;
|
// BoardToggleSwitchEnableTwoFingerTranslate.IsOn = true;
|
||||||
Settings.Gesture.IsEnableTwoFingerTranslate = true;
|
// Settings.Gesture.IsEnableTwoFingerTranslate = true;
|
||||||
if (isInMultiTouchMode) ToggleSwitchEnableMultiTouchMode.IsOn = false;
|
// if (isInMultiTouchMode) ToggleSwitchEnableMultiTouchMode.IsOn = false;
|
||||||
}
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
ToggleSwitchDisableGestureEraser.IsOn = Settings.Gesture.DisableGestureEraser;
|
||||||
|
|
||||||
|
if (Settings.Gesture.DisableGestureEraser) {
|
||||||
|
GestureEraserSettingsItemsPanel.Opacity = 0.5;
|
||||||
|
GestureEraserSettingsItemsPanel.IsHitTestVisible = false;
|
||||||
|
SettingsGestureEraserDisabledBorder.IsOpen = true;
|
||||||
|
} else {
|
||||||
|
GestureEraserSettingsItemsPanel.Opacity = 1;
|
||||||
|
GestureEraserSettingsItemsPanel.IsHitTestVisible = true;
|
||||||
|
SettingsGestureEraserDisabledBorder.IsOpen = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ComboBoxDefaultMultiPointHandWriting.SelectedIndex = Settings.Gesture.DefaultMultiPointHandWritingMode;
|
||||||
|
|
||||||
|
if (Settings.Gesture.DefaultMultiPointHandWritingMode == 0) {
|
||||||
|
ToggleSwitchEnableMultiTouchMode.IsOn = true;
|
||||||
|
} else if (Settings.Gesture.DefaultMultiPointHandWritingMode == 1) {
|
||||||
|
ToggleSwitchEnableMultiTouchMode.IsOn = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ToggleSwitchHideCursorWhenUsingTouchDevice.IsOn = Settings.Gesture.HideCursorWhenUsingTouchDevice;
|
||||||
|
|
||||||
CheckEnableTwoFingerGestureBtnColorPrompt();
|
CheckEnableTwoFingerGestureBtnColorPrompt();
|
||||||
} else {
|
} else {
|
||||||
Settings.Gesture = new Gesture();
|
Settings.Gesture = new Gesture();
|
||||||
@ -539,6 +562,9 @@ namespace Ink_Canvas {
|
|||||||
|
|
||||||
ToggleSwitchIsEnableResolutionChangeDetection.IsOn =
|
ToggleSwitchIsEnableResolutionChangeDetection.IsOn =
|
||||||
Settings.Advanced.IsEnableResolutionChangeDetection;
|
Settings.Advanced.IsEnableResolutionChangeDetection;
|
||||||
|
|
||||||
|
ToggleSwitchEnsureFloatingBarVisibleInScreen.IsOn = Settings.Advanced.IsEnableDPIChangeDetection &&
|
||||||
|
Settings.Advanced.IsEnableResolutionChangeDetection;
|
||||||
} else {
|
} else {
|
||||||
Settings.Advanced = new Advanced();
|
Settings.Advanced = new Advanced();
|
||||||
}
|
}
|
||||||
@ -607,9 +633,9 @@ namespace Ink_Canvas {
|
|||||||
|
|
||||||
ToggleSwitchAutoFoldInMaxHubWhiteboard.IsOn = Settings.Automation.IsAutoFoldInMaxHubWhiteboard;
|
ToggleSwitchAutoFoldInMaxHubWhiteboard.IsOn = Settings.Automation.IsAutoFoldInMaxHubWhiteboard;
|
||||||
|
|
||||||
SettingsPPTInkingAndAutoFoldExplictBorder.Visibility = Visibility.Collapsed;
|
SettingsPPTInkingAndAutoFoldExplictBorder.IsOpen = false;
|
||||||
if (Settings.Automation.IsAutoFoldInPPTSlideShow) {
|
if (Settings.Automation.IsAutoFoldInPPTSlideShow) {
|
||||||
SettingsPPTInkingAndAutoFoldExplictBorder.Visibility = Visibility.Visible;
|
SettingsPPTInkingAndAutoFoldExplictBorder.IsOpen = true;
|
||||||
SettingsShowCanvasAtNewSlideShowStackPanel.Opacity = 0.5;
|
SettingsShowCanvasAtNewSlideShowStackPanel.Opacity = 0.5;
|
||||||
SettingsShowCanvasAtNewSlideShowStackPanel.IsHitTestVisible = false;
|
SettingsShowCanvasAtNewSlideShowStackPanel.IsHitTestVisible = false;
|
||||||
}
|
}
|
||||||
|
@ -1604,13 +1604,5 @@ namespace Ink_Canvas {
|
|||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MainWindow_OnMouseMove(object sender, MouseEventArgs e) {
|
|
||||||
if (e.StylusDevice == null) {
|
|
||||||
System.Windows.Forms.Cursor.Show();
|
|
||||||
} else {
|
|
||||||
System.Windows.Forms.Cursor.Hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
using Ink_Canvas.Helpers;
|
using Ink_Canvas.Helpers;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
@ -40,6 +41,12 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void MainWindow_TouchDown(object sender, TouchEventArgs e) {
|
private void MainWindow_TouchDown(object sender, TouchEventArgs e) {
|
||||||
|
|
||||||
|
if (!isCursorHidden && Settings.Gesture.HideCursorWhenUsingTouchDevice) {
|
||||||
|
System.Windows.Forms.Cursor.Hide();
|
||||||
|
isCursorHidden = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint
|
if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint
|
||||||
|| inkCanvas.EditingMode == InkCanvasEditingMode.EraseByStroke
|
|| inkCanvas.EditingMode == InkCanvasEditingMode.EraseByStroke
|
||||||
|| inkCanvas.EditingMode == InkCanvasEditingMode.Select) return;
|
|| inkCanvas.EditingMode == InkCanvasEditingMode.Select) return;
|
||||||
@ -49,42 +56,52 @@ namespace Ink_Canvas {
|
|||||||
HideSubPanels(); // 书写时自动隐藏二级菜单
|
HideSubPanels(); // 书写时自动隐藏二级菜单
|
||||||
}
|
}
|
||||||
|
|
||||||
double boundWidth = e.GetTouchPoint(null).Bounds.Width, eraserMultiplier = 1.0;
|
// 不禁用手势橡皮
|
||||||
if (!Settings.Advanced.EraserBindTouchMultiplier && Settings.Advanced.IsSpecialScreen)
|
if (!Settings.Gesture.DisableGestureEraser) {
|
||||||
eraserMultiplier = 1 / Settings.Advanced.TouchMultiplier;
|
double boundWidth = e.GetTouchPoint(null).Bounds.Width, eraserMultiplier = 1.0;
|
||||||
|
if (!Settings.Advanced.EraserBindTouchMultiplier && Settings.Advanced.IsSpecialScreen)
|
||||||
|
eraserMultiplier = 1 / Settings.Advanced.TouchMultiplier;
|
||||||
|
|
||||||
if ((Settings.Advanced.TouchMultiplier != 0 || !Settings.Advanced.IsSpecialScreen) //启用特殊屏幕且触摸倍数为 0 时禁用橡皮
|
if ((Settings.Advanced.TouchMultiplier != 0 || !Settings.Advanced.IsSpecialScreen) //启用特殊屏幕且触摸倍数为 0 时禁用橡皮
|
||||||
&& boundWidth > BoundsWidth * 2.5) {
|
&& boundWidth > BoundsWidth * 2.5) {
|
||||||
if (drawingShapeMode == 0 && forceEraser) return;
|
if (drawingShapeMode == 0 && forceEraser) return;
|
||||||
double k = 1;
|
double k = 1;
|
||||||
switch (Settings.Canvas.EraserSize) {
|
switch (Settings.Canvas.EraserSize) {
|
||||||
case 0:
|
case 0:
|
||||||
k = 0.5;
|
k = 0.5;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
k = 0.8;
|
k = 0.8;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
k = 1.25;
|
k = 1.25;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
k = 1.8;
|
k = 1.8;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
inkCanvas.EraserShape = new EllipseStylusShape(boundWidth * k * eraserMultiplier * 0.25,
|
||||||
|
boundWidth * k * eraserMultiplier * 0.25);
|
||||||
|
TouchDownPointsList[e.TouchDevice.Id] = InkCanvasEditingMode.EraseByPoint;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
TouchDownPointsList[e.TouchDevice.Id] = InkCanvasEditingMode.None;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inkCanvas.EraserShape = new EllipseStylusShape(boundWidth * k * eraserMultiplier * 0.25,
|
|
||||||
boundWidth * k * eraserMultiplier * 0.25);
|
|
||||||
TouchDownPointsList[e.TouchDevice.Id] = InkCanvasEditingMode.EraseByPoint;
|
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
TouchDownPointsList[e.TouchDevice.Id] = InkCanvasEditingMode.None;
|
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.None;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MainWindow_StylusDown(object sender, StylusDownEventArgs e) {
|
private void MainWindow_StylusDown(object sender, StylusDownEventArgs e) {
|
||||||
|
|
||||||
|
if (!isCursorHidden && Settings.Gesture.HideCursorWhenUsingTouchDevice && e.StylusDevice.TabletDevice.Type == TabletDeviceType.Touch) {
|
||||||
|
System.Windows.Forms.Cursor.Hide();
|
||||||
|
isCursorHidden = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
inkCanvas.CaptureStylus();
|
inkCanvas.CaptureStylus();
|
||||||
ViewboxFloatingBar.IsHitTestVisible = false;
|
ViewboxFloatingBar.IsHitTestVisible = false;
|
||||||
BlackboardUIGridForInkReplay.IsHitTestVisible = false;
|
BlackboardUIGridForInkReplay.IsHitTestVisible = false;
|
||||||
@ -97,16 +114,18 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void MainWindow_StylusUp(object sender, StylusEventArgs e) {
|
private async void MainWindow_StylusUp(object sender, StylusEventArgs e) {
|
||||||
try {
|
if (e.StylusDevice.TabletDevice.Type == TabletDeviceType.Touch) {
|
||||||
inkCanvas.Strokes.Add(GetStrokeVisual(e.StylusDevice.Id).Stroke);
|
try {
|
||||||
await Task.Delay(5); // 避免渲染墨迹完成前预览墨迹被删除导致墨迹闪烁
|
inkCanvas.Strokes.Add(GetStrokeVisual(e.StylusDevice.Id).Stroke);
|
||||||
inkCanvas.Children.Remove(GetVisualCanvas(e.StylusDevice.Id));
|
await Task.Delay(5); // 避免渲染墨迹完成前预览墨迹被删除导致墨迹闪烁
|
||||||
|
inkCanvas.Children.Remove(GetVisualCanvas(e.StylusDevice.Id));
|
||||||
|
|
||||||
inkCanvas_StrokeCollected(inkCanvas,
|
inkCanvas_StrokeCollected(inkCanvas,
|
||||||
new InkCanvasStrokeCollectedEventArgs(GetStrokeVisual(e.StylusDevice.Id).Stroke));
|
new InkCanvasStrokeCollectedEventArgs(GetStrokeVisual(e.StylusDevice.Id).Stroke));
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
Label.Content = ex.ToString();
|
Label.Content = ex.ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -128,6 +147,15 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void MainWindow_StylusMove(object sender, StylusEventArgs e) {
|
private void MainWindow_StylusMove(object sender, StylusEventArgs e) {
|
||||||
|
|
||||||
|
if (!isCursorHidden && Settings.Gesture.HideCursorWhenUsingTouchDevice && e.StylusDevice.TabletDevice.Type == TabletDeviceType.Touch)
|
||||||
|
{
|
||||||
|
System.Windows.Forms.Cursor.Hide();
|
||||||
|
isCursorHidden = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Trace.WriteLine(e.Inverted);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (GetTouchDownPointsList(e.StylusDevice.Id) != InkCanvasEditingMode.None) return;
|
if (GetTouchDownPointsList(e.StylusDevice.Id) != InkCanvasEditingMode.None) return;
|
||||||
try {
|
try {
|
||||||
@ -173,6 +201,25 @@ namespace Ink_Canvas {
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Touch Pointer Hide
|
||||||
|
|
||||||
|
public bool isCursorHidden = false;
|
||||||
|
|
||||||
|
private void MainWindow_OnMouseMove(object sender, MouseEventArgs e) {
|
||||||
|
if (e.StylusDevice == null) {
|
||||||
|
if (isCursorHidden) {
|
||||||
|
System.Windows.Forms.Cursor.Show();
|
||||||
|
isCursorHidden = false;
|
||||||
|
}
|
||||||
|
} else if (e.StylusDevice.TabletDevice.Type == TabletDeviceType.Stylus) {
|
||||||
|
if (isCursorHidden) {
|
||||||
|
System.Windows.Forms.Cursor.Show();
|
||||||
|
isCursorHidden = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
private int lastTouchDownTime = 0, lastTouchUpTime = 0;
|
private int lastTouchDownTime = 0, lastTouchUpTime = 0;
|
||||||
|
|
||||||
@ -182,6 +229,12 @@ namespace Ink_Canvas {
|
|||||||
|
|
||||||
private void Main_Grid_TouchDown(object sender, TouchEventArgs e) {
|
private void Main_Grid_TouchDown(object sender, TouchEventArgs e) {
|
||||||
|
|
||||||
|
if (!isCursorHidden && Settings.Gesture.HideCursorWhenUsingTouchDevice)
|
||||||
|
{
|
||||||
|
System.Windows.Forms.Cursor.Hide();
|
||||||
|
isCursorHidden = true;
|
||||||
|
}
|
||||||
|
|
||||||
inkCanvas.CaptureTouch(e.TouchDevice);
|
inkCanvas.CaptureTouch(e.TouchDevice);
|
||||||
ViewboxFloatingBar.IsHitTestVisible = false;
|
ViewboxFloatingBar.IsHitTestVisible = false;
|
||||||
BlackboardUIGridForInkReplay.IsHitTestVisible = false;
|
BlackboardUIGridForInkReplay.IsHitTestVisible = false;
|
||||||
@ -194,52 +247,55 @@ namespace Ink_Canvas {
|
|||||||
if (NeedUpdateIniP()) iniP = e.GetTouchPoint(inkCanvas).Position;
|
if (NeedUpdateIniP()) iniP = e.GetTouchPoint(inkCanvas).Position;
|
||||||
if (drawingShapeMode == 9 && isFirstTouchCuboid == false) MouseTouchMove(iniP);
|
if (drawingShapeMode == 9 && isFirstTouchCuboid == false) MouseTouchMove(iniP);
|
||||||
inkCanvas.Opacity = 1;
|
inkCanvas.Opacity = 1;
|
||||||
double boundsWidth = GetTouchBoundWidth(e), eraserMultiplier = 1.0;
|
|
||||||
if (!Settings.Advanced.EraserBindTouchMultiplier && Settings.Advanced.IsSpecialScreen)
|
|
||||||
eraserMultiplier = 1 / Settings.Advanced.TouchMultiplier;
|
|
||||||
if (boundsWidth > BoundsWidth) {
|
|
||||||
isLastTouchEraser = true;
|
|
||||||
if (drawingShapeMode == 0 && forceEraser) return;
|
|
||||||
if (boundsWidth > BoundsWidth * 2.5) {
|
|
||||||
double k = 1;
|
|
||||||
switch (Settings.Canvas.EraserSize) {
|
|
||||||
case 0:
|
|
||||||
k = 0.5;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
k = 0.8;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
k = 1.25;
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
k = 1.8;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
inkCanvas.EraserShape = new EllipseStylusShape(boundsWidth * k * eraserMultiplier,
|
if (!Settings.Gesture.DisableGestureEraser) {
|
||||||
boundsWidth * k * eraserMultiplier);
|
double boundsWidth = GetTouchBoundWidth(e), eraserMultiplier = 1.0;
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint;
|
if (!Settings.Advanced.EraserBindTouchMultiplier && Settings.Advanced.IsSpecialScreen)
|
||||||
}
|
eraserMultiplier = 1 / Settings.Advanced.TouchMultiplier;
|
||||||
else {
|
if (boundsWidth > BoundsWidth) {
|
||||||
if (StackPanelPPTControls.Visibility == Visibility.Visible && inkCanvas.Strokes.Count == 0 &&
|
isLastTouchEraser = true;
|
||||||
Settings.PowerPointSettings.IsEnableFingerGestureSlideShowControl) {
|
if (drawingShapeMode == 0 && forceEraser) return;
|
||||||
isLastTouchEraser = false;
|
if (boundsWidth > BoundsWidth * 2.5) {
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.GestureOnly;
|
double k = 1;
|
||||||
inkCanvas.Opacity = 0.1;
|
switch (Settings.Canvas.EraserSize) {
|
||||||
|
case 0:
|
||||||
|
k = 0.5;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
k = 0.8;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
k = 1.25;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
k = 1.8;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
inkCanvas.EraserShape = new EllipseStylusShape(boundsWidth * k * eraserMultiplier,
|
||||||
|
boundsWidth * k * eraserMultiplier);
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
inkCanvas.EraserShape = new EllipseStylusShape(5, 5);
|
if (StackPanelPPTControls.Visibility == Visibility.Visible && inkCanvas.Strokes.Count == 0 &&
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
|
Settings.PowerPointSettings.IsEnableFingerGestureSlideShowControl) {
|
||||||
|
isLastTouchEraser = false;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.GestureOnly;
|
||||||
|
inkCanvas.Opacity = 0.1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
inkCanvas.EraserShape = new EllipseStylusShape(5, 5);
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
else {
|
||||||
else {
|
isLastTouchEraser = false;
|
||||||
isLastTouchEraser = false;
|
inkCanvas.EraserShape =
|
||||||
inkCanvas.EraserShape =
|
forcePointEraser ? new EllipseStylusShape(50, 50) : new EllipseStylusShape(5, 5);
|
||||||
forcePointEraser ? new EllipseStylusShape(50, 50) : new EllipseStylusShape(5, 5);
|
if (forceEraser) return;
|
||||||
if (forceEraser) return;
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,8 +374,7 @@ namespace Ink_Canvas {
|
|||||||
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- removed --
|
|
||||||
//
|
|
||||||
//private void inkCanvas_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
|
//private void inkCanvas_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
|
||||||
//{
|
//{
|
||||||
// if (isInMultiTouchMode || !Settings.Gesture.IsEnableTwoFingerGesture || inkCanvas.Strokes.Count == 0 || dec.Count() < 2) return;
|
// if (isInMultiTouchMode || !Settings.Gesture.IsEnableTwoFingerGesture || inkCanvas.Strokes.Count == 0 || dec.Count() < 2) return;
|
||||||
|
@ -81,6 +81,18 @@ namespace Ink_Canvas
|
|||||||
public bool IsEnableTwoFingerRotation { get; set; } = false;
|
public bool IsEnableTwoFingerRotation { get; set; } = false;
|
||||||
[JsonProperty("isEnableTwoFingerRotationOnSelection")]
|
[JsonProperty("isEnableTwoFingerRotationOnSelection")]
|
||||||
public bool IsEnableTwoFingerRotationOnSelection { get; set; } = false;
|
public bool IsEnableTwoFingerRotationOnSelection { get; set; } = false;
|
||||||
|
[JsonProperty("disableGestureEraser")]
|
||||||
|
public bool DisableGestureEraser { get; set; } = true;
|
||||||
|
[JsonProperty("defaultMultiPointHandWritingMode")]
|
||||||
|
public int DefaultMultiPointHandWritingMode { get; set; } = 2;
|
||||||
|
[JsonProperty("hideCursorWhenUsingTouchDevice")]
|
||||||
|
public bool HideCursorWhenUsingTouchDevice { get; set; } = true;
|
||||||
|
[JsonProperty("enableMouseGesture")]
|
||||||
|
public bool EnableMouseGesture { get; set; } = true;
|
||||||
|
[JsonProperty("enableMouseRightBtnGesture")]
|
||||||
|
public bool EnableMouseRightBtnGesture { get; set; } = true;
|
||||||
|
[JsonProperty("enableMouseWheelGesture")]
|
||||||
|
public bool EnableMouseWheelGesture { get; set; } = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Startup
|
public class Startup
|
||||||
|
14
InkCanvasForClassX/InkCanvasForClassX.csproj.user
Normal file
14
InkCanvasForClassX/InkCanvasForClassX.csproj.user
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup />
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Update="Libraries\InkCanvas.xaml.cs">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Page Update="Libraries\InkCanvas.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Page>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
12
InkCanvasForClassX/Libraries/InkCanvas.xaml
Normal file
12
InkCanvasForClassX/Libraries/InkCanvas.xaml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<UserControl x:Class="InkCanvasForClassX.Libraries.InkCanvas"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:local="clr-namespace:InkCanvasForClassX.Libraries"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
d:DesignHeight="450" d:DesignWidth="800">
|
||||||
|
<Grid Background="Red">
|
||||||
|
<local:InkProjector x:Name="inkProjector" Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Path=ActualWidth}" Height="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Path=ActualHeight}" Margin="0,0,0,0"/>
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
68
InkCanvasForClassX/Libraries/InkCanvas.xaml.cs
Normal file
68
InkCanvasForClassX/Libraries/InkCanvas.xaml.cs
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
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.Ink;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Media.Imaging;
|
||||||
|
using System.Windows.Navigation;
|
||||||
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
|
namespace InkCanvasForClassX.Libraries
|
||||||
|
{
|
||||||
|
public partial class InkCanvas : UserControl
|
||||||
|
{
|
||||||
|
|
||||||
|
public static readonly DependencyProperty InkStrokesProperty =
|
||||||
|
DependencyProperty.Register(
|
||||||
|
name: "InkStrokes",
|
||||||
|
propertyType: typeof(StrokeCollection),
|
||||||
|
ownerType: typeof(InkCanvas),
|
||||||
|
typeMetadata: new FrameworkPropertyMetadata(
|
||||||
|
defaultValue: new StrokeCollection(),
|
||||||
|
propertyChangedCallback: new PropertyChangedCallback(OnInkStrokesChanged))
|
||||||
|
);
|
||||||
|
|
||||||
|
public StrokeCollection InkStrokes {
|
||||||
|
get => (StrokeCollection)GetValue(InkStrokesProperty);
|
||||||
|
set {
|
||||||
|
Trace.WriteLine("Set InkStrokes");
|
||||||
|
SetValue(InkStrokesProperty, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void OnInkStrokesChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
Trace.WriteLine("Update");
|
||||||
|
var control = (InkCanvas)d;
|
||||||
|
if (e.OldValue is StrokeCollection oldStrokes) {
|
||||||
|
oldStrokes.StrokesChanged -= control.OnStrokesChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.NewValue is StrokeCollection newStrokes) {
|
||||||
|
newStrokes.StrokesChanged += control.OnStrokesChanged;
|
||||||
|
control.inkProjector.Strokes = newStrokes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void OnStrokesChanged(object sender, StrokeCollectionChangedEventArgs e)
|
||||||
|
{
|
||||||
|
Trace.WriteLine("Strokes Collection Changed");
|
||||||
|
// Ensure that the InkStrokes dependency property updates
|
||||||
|
SetValue(InkStrokesProperty, sender as StrokeCollection);
|
||||||
|
inkProjector.Strokes = sender as StrokeCollection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public InkCanvas()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
InkStrokes.StrokesChanged += OnStrokesChanged;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -8,7 +8,8 @@
|
|||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="MainWindow" Height="1300" Width="1300">
|
Title="MainWindow" Height="1300" Width="1300">
|
||||||
<Grid>
|
<Grid>
|
||||||
<libraries:InkProjector Width="600" Height="600" x:Name="InkP" Margin="0,0,0,600"/>
|
<libraries:InkCanvas x:Name="inkCanvas" Width="600" Height="600" Margin="0,0,0,600"/>
|
||||||
|
<!--<libraries:InkCanvas InkStrokes="{Binding ElementName=InkC, Path=Strokes}" x:Name="inkCanvas" Width="600" Height="600" Margin="0,0,0,600"/>-->
|
||||||
<InkCanvas Height="600" Width="600" Name="InkC" Margin="0,600,0,0" Background="Wheat"></InkCanvas>
|
<InkCanvas Height="600" Width="600" Name="InkC" Margin="0,600,0,0" Background="Wheat"></InkCanvas>
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<Button Click="ButtonBase1_OnClick">Change to None</Button>
|
<Button Click="ButtonBase1_OnClick">Change to None</Button>
|
||||||
|
@ -51,38 +51,38 @@ namespace InkCanvasForClassX
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
InkC.StrokeCollected += (object sender, InkCanvasStrokeCollectedEventArgs e) => {
|
InkC.StrokeCollected += (object sender, InkCanvasStrokeCollectedEventArgs e) => {
|
||||||
InkP.Strokes = InkC.Strokes;
|
inkCanvas.InkStrokes = InkC.Strokes;
|
||||||
var stylusPtsList = new List<PerfectFreehandJint.StylusPointLite>();
|
//var stylusPtsList = new List<PerfectFreehandJint.StylusPointLite>();
|
||||||
foreach (var strokeStylusPoint in e.Stroke.StylusPoints) {
|
//foreach (var strokeStylusPoint in e.Stroke.StylusPoints) {
|
||||||
stylusPtsList.Add(new PerfectFreehandJint.StylusPointLite()
|
// stylusPtsList.Add(new PerfectFreehandJint.StylusPointLite()
|
||||||
{
|
// {
|
||||||
x = Math.Round(strokeStylusPoint.X,2) ,
|
// x = Math.Round(strokeStylusPoint.X,2) ,
|
||||||
y = Math.Round(strokeStylusPoint.Y,2),
|
// y = Math.Round(strokeStylusPoint.Y,2),
|
||||||
pressure = strokeStylusPoint.PressureFactor,
|
// pressure = strokeStylusPoint.PressureFactor,
|
||||||
});
|
// });
|
||||||
}
|
//}
|
||||||
var aaa = new PerfectFreehandJint();
|
//var aaa = new PerfectFreehandJint();
|
||||||
var ccc = aaa.GetSVGPathStroke(stylusPtsList.ToArray(), new PerfectFreehandJint.StrokeOptions() {
|
//var ccc = aaa.GetSVGPathStroke(stylusPtsList.ToArray(), new PerfectFreehandJint.StrokeOptions() {
|
||||||
size = 16,
|
// size = 16,
|
||||||
thinning = 0.5,
|
// thinning = 0.5,
|
||||||
smoothing = 0.5,
|
// smoothing = 0.5,
|
||||||
streamline = 0.5,
|
// streamline = 0.5,
|
||||||
simulatePressure = true,
|
// simulatePressure = true,
|
||||||
easing = (t)=>t,
|
// easing = (t)=>t,
|
||||||
last = true,
|
// last = true,
|
||||||
start = new PerfectFreehandJint.StrokeCapOptions() {
|
// start = new PerfectFreehandJint.StrokeCapOptions() {
|
||||||
cap = true,
|
// cap = true,
|
||||||
taper = 0,
|
// taper = 0,
|
||||||
easing = (t)=>t,
|
// easing = (t)=>t,
|
||||||
},
|
// },
|
||||||
end = new PerfectFreehandJint.StrokeCapOptions()
|
// end = new PerfectFreehandJint.StrokeCapOptions()
|
||||||
{
|
// {
|
||||||
cap = true,
|
// cap = true,
|
||||||
taper = 0,
|
// taper = 0,
|
||||||
easing = (t) => t,
|
// easing = (t) => t,
|
||||||
},
|
// },
|
||||||
});
|
//});
|
||||||
Trace.WriteLine(ccc);
|
//Trace.WriteLine(ccc);
|
||||||
};
|
};
|
||||||
|
|
||||||
InkC.MouseRightButtonDown += Inkcanv_MouseRightButtonDown;
|
InkC.MouseRightButtonDown += Inkcanv_MouseRightButtonDown;
|
||||||
@ -135,7 +135,7 @@ namespace InkCanvasForClassX
|
|||||||
{
|
{
|
||||||
stroke.Transform(new Matrix(1, 0, 0, 1, delta.X, delta.Y), false);
|
stroke.Transform(new Matrix(1, 0, 0, 1, delta.X, delta.Y), false);
|
||||||
}
|
}
|
||||||
InkP.Strokes = InkC.Strokes;
|
inkCanvas.InkStrokes = InkC.Strokes;
|
||||||
|
|
||||||
startPoint = currentPoint;
|
startPoint = currentPoint;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user