[update] 白板模式工具栏反馈效果,TimeMachine做部分修复
This commit is contained in:
parent
fec0f55deb
commit
d83a81074a
@ -650,9 +650,10 @@
|
||||
HorizontalAlignment="Center" VerticalAlignment="Bottom">
|
||||
<ui:SimpleStackPanel Orientation="Horizontal">
|
||||
<Border CornerRadius="5,5,5,5" Background="#f4f4f5" Margin="0,0,5,0">
|
||||
<Grid>
|
||||
<ui:SimpleStackPanel Orientation="Horizontal">
|
||||
<Border Width="60" Height="50" MouseDown="Border_MouseDown" Name="BoardGesture"
|
||||
MouseUp="TwoFingerGestureBorder_MouseUp" CornerRadius="5,0,0,5"
|
||||
<Border Width="60" Height="50" MouseDown="BoardSideBtnMouseDown" MouseLeave="BoardSideBtnMouseLeave" Name="BoardGesture"
|
||||
MouseUp="BoardGestureMouseUp" CornerRadius="5,0,0,5"
|
||||
Background="#f4f4f5"
|
||||
Opacity="1" BorderThickness="1,1,0,1" BorderBrush="#a1a1aa">
|
||||
<Grid Margin="6,6,6,4">
|
||||
@ -822,7 +823,7 @@
|
||||
</ui:SimpleStackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
<Border Width="60" Height="50" MouseDown="Border_MouseDown"
|
||||
<Border Width="60" Height="50" Name="BoardBackground" MouseDown="BoardSideBtnMouseDown" MouseLeave="BoardSideBtnMouseLeave"
|
||||
MouseUp="BoardChangeBackgroundColorBtn_MouseUp" CornerRadius="0,5,5,0"
|
||||
Background="#f4f4f5" Opacity="1" BorderThickness="0,1,1,1"
|
||||
BorderBrush="#a1a1aa">
|
||||
@ -1070,18 +1071,22 @@
|
||||
</ui:SimpleStackPanel>
|
||||
</StackPanel>
|
||||
</Viewbox>
|
||||
|
||||
</ui:SimpleStackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</ui:SimpleStackPanel>
|
||||
<Border Name="BoardSideBtnMouseFeedbakBorder" Visibility="Collapsed" IsHitTestVisible="False" Width="60" HorizontalAlignment="Left" Height="50" Padding="1">
|
||||
<Border CornerRadius="4.5,0,0,0" Background="#2509090b"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<Border CornerRadius="5,5,5,5" Background="#f4f4f5" Margin="0,0,5,0">
|
||||
<Grid>
|
||||
<ui:SimpleStackPanel Orientation="Horizontal">
|
||||
<Border x:Name="BoardSelect" Width="60" Height="50" MouseDown="Border_MouseDown"
|
||||
<Border x:Name="BoardSelect" Width="60" Height="50" MouseDown="BoardToolBtnMouseDown" MouseLeave="BoardToolBtnMouseLeave"
|
||||
BorderThickness="1,1,0,1" BorderBrush="#a1a1aa"
|
||||
MouseUp="SymbolIconSelect_MouseUp" CornerRadius="5,0,0,5"
|
||||
MouseUp="BoardSelectMouseUp" CornerRadius="5,0,0,5"
|
||||
Background="#f4f4f5"
|
||||
Opacity="0.95">
|
||||
<Grid Margin="6,6,6,4">
|
||||
@ -1104,9 +1109,9 @@
|
||||
HorizontalAlignment="Center" FontSize="12" />
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border x:Name="BoardPen" Width="60" Height="50" MouseDown="Border_MouseDown"
|
||||
BorderThickness="0,1,0,1" BorderBrush="#a1a1aa"
|
||||
MouseUp="PenIcon_Click" Background="#f4f4f5" Opacity="0.95">
|
||||
<Border x:Name="BoardPen" Width="60" Height="50" MouseDown="BoardToolBtnMouseDown"
|
||||
BorderThickness="0,1,0,1" BorderBrush="#a1a1aa" MouseLeave="BoardToolBtnMouseLeave"
|
||||
MouseUp="BoardPenMouseUp" Background="#f4f4f5" Opacity="0.95">
|
||||
<Grid Margin="6,6,6,4">
|
||||
<Image x:Name="BoardPenIcon" VerticalAlignment="Top"
|
||||
RenderOptions.BitmapScalingMode="HighQuality" Height="20" Width="20">
|
||||
@ -1998,9 +2003,9 @@
|
||||
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border x:Name="BoardEraser" Width="60" Height="50" MouseDown="Border_MouseDown"
|
||||
<Border x:Name="BoardEraser" MouseDown="BoardToolBtnMouseDown" MouseLeave="BoardToolBtnMouseLeave" Width="60" Height="50"
|
||||
BorderThickness="0,1,1,1" BorderBrush="#a1a1aa"
|
||||
MouseUp="BoardEraserIcon_Click" Background="#f4f4f5" Opacity="0.95">
|
||||
MouseUp="BoardEraserMouseUp" Background="#f4f4f5" Opacity="0.95">
|
||||
<Grid Margin="6,6,6,4">
|
||||
<Image VerticalAlignment="Top"
|
||||
RenderOptions.BitmapScalingMode="HighQuality" Height="20" Width="20">
|
||||
@ -2227,9 +2232,9 @@
|
||||
HorizontalAlignment="Center" FontSize="12" />
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border x:Name="BoardGeometry" Width="60" Height="50" MouseDown="Border_MouseDown"
|
||||
<Border x:Name="BoardGeometry" Width="60" Height="50" MouseDown="BoardToolBtnMouseDown" MouseLeave="BoardToolBtnMouseLeave"
|
||||
BorderThickness="0,1,1,1" BorderBrush="#a1a1aa"
|
||||
MouseUp="ImageDrawShape_MouseUp" Background="#f4f4f5" Opacity="0.95">
|
||||
MouseUp="BoardGeometryMouseUp" Background="#f4f4f5" Opacity="0.95">
|
||||
<Grid Margin="6,6,6,4">
|
||||
<Image VerticalAlignment="Top"
|
||||
RenderOptions.BitmapScalingMode="HighQuality" Height="20" Width="20">
|
||||
@ -2400,8 +2405,8 @@
|
||||
</Viewbox>
|
||||
</Border>
|
||||
</Border>
|
||||
<Border x:Name="BoardUndo" Width="60" Height="50" MouseDown="Border_MouseDown"
|
||||
MouseUp="SymbolIconUndo_MouseUp" BorderThickness="0,1,0,1"
|
||||
<Border x:Name="BoardUndo" Width="60" Height="50" MouseDown="BoardToolBtnMouseDown" MouseLeave="BoardToolBtnMouseLeave"
|
||||
MouseUp="BoardUndoMouseUp" BorderThickness="0,1,0,1"
|
||||
BorderBrush="#a1a1aa"
|
||||
IsEnabled="{Binding ElementName=SymbolIconUndo, Path=IsEnabled}"
|
||||
Background="#f4f4f5"
|
||||
@ -2427,7 +2432,7 @@
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border x:Name="BoardRedo" Width="60" Height="50" CornerRadius="0,5,5,0"
|
||||
MouseDown="Border_MouseDown" MouseUp="SymbolIconRedo_MouseUp"
|
||||
MouseDown="BoardToolBtnMouseDown" MouseLeave="BoardToolBtnMouseLeave" MouseUp="BoardRedoMouseUp"
|
||||
BorderThickness="0,1,1,1"
|
||||
BorderBrush="#a1a1aa"
|
||||
IsEnabled="{Binding ElementName=SymbolIconRedo, Path=IsEnabled}"
|
||||
@ -2453,6 +2458,10 @@
|
||||
</Grid>
|
||||
</Border>
|
||||
</ui:SimpleStackPanel>
|
||||
<Border Name="BoardMouseFeedbakBorder" Visibility="Collapsed" IsHitTestVisible="False" Width="60" HorizontalAlignment="Left" Height="50" Padding="1">
|
||||
<Border CornerRadius="4.5,0,0,0" Background="#2509090b"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<Border CornerRadius="5,5,5,5" Background="#f4f4f5">
|
||||
|
@ -4,10 +4,86 @@ using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Ink;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace Ink_Canvas {
|
||||
public partial class MainWindow : Window {
|
||||
|
||||
private Border lastBoardToolBtnDownBorder = null;
|
||||
private Border lastBoardSideBtnDownBorder = null;
|
||||
|
||||
private void BoardToolBtnMouseDown(object sender, MouseButtonEventArgs e) {
|
||||
if (lastBoardToolBtnDownBorder != null) return;
|
||||
lastBoardToolBtnDownBorder = (Border)sender;
|
||||
if (lastBoardToolBtnDownBorder.Name == "BoardPen") {
|
||||
BoardMouseFeedbakBorder.Margin = new Thickness(60, 0, 0, 0);
|
||||
((Border)BoardMouseFeedbakBorder.Child).CornerRadius = new CornerRadius(0);
|
||||
} else if (lastBoardToolBtnDownBorder.Name == "BoardSelect") {
|
||||
BoardMouseFeedbakBorder.Margin = new Thickness(0);
|
||||
((Border)BoardMouseFeedbakBorder.Child).CornerRadius = new CornerRadius(4.5,0,0,4.5);
|
||||
} else if (lastBoardToolBtnDownBorder.Name == "BoardEraser") {
|
||||
BoardMouseFeedbakBorder.Margin = new Thickness(120, 0, 0, 0);
|
||||
((Border)BoardMouseFeedbakBorder.Child).CornerRadius = new CornerRadius(0);
|
||||
} else if (lastBoardToolBtnDownBorder.Name == "BoardGeometry") {
|
||||
BoardMouseFeedbakBorder.Margin = new Thickness(180, 0, 0, 0);
|
||||
((Border)BoardMouseFeedbakBorder.Child).CornerRadius = new CornerRadius(0);
|
||||
} else if (lastBoardToolBtnDownBorder.Name == "BoardUndo") {
|
||||
BoardMouseFeedbakBorder.Margin = new Thickness(240, 0, 0, 0);
|
||||
((Border)BoardMouseFeedbakBorder.Child).CornerRadius = new CornerRadius(0);
|
||||
} else if (lastBoardToolBtnDownBorder.Name == "BoardRedo") {
|
||||
BoardMouseFeedbakBorder.Margin = new Thickness(300, 0, 0, 0);
|
||||
((Border)BoardMouseFeedbakBorder.Child).CornerRadius = new CornerRadius(0,4.5,4.5,0);
|
||||
}
|
||||
BoardMouseFeedbakBorder.Visibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
private void BoardSideBtnMouseDown(object sender, MouseButtonEventArgs e) {
|
||||
if (lastBoardSideBtnDownBorder != null) return;
|
||||
lastBoardSideBtnDownBorder = (Border)sender;
|
||||
if (lastBoardSideBtnDownBorder.Name == "BoardBackground") {
|
||||
BoardSideBtnMouseFeedbakBorder.Margin = new Thickness(60, 0, 0, 0);
|
||||
((Border)BoardSideBtnMouseFeedbakBorder.Child).CornerRadius = new CornerRadius(0,4.5,4.5,0);
|
||||
BoardSideBtnMouseFeedbakBorder.Visibility = Visibility.Visible;
|
||||
} else if (lastBoardSideBtnDownBorder.Name == "BoardGesture") {
|
||||
BoardSideBtnMouseFeedbakBorder.Margin = new Thickness(0);
|
||||
((Border)BoardSideBtnMouseFeedbakBorder.Child).CornerRadius = new CornerRadius(4.5,0,0,4.5);
|
||||
BoardSideBtnMouseFeedbakBorder.Visibility = Visibility.Visible;
|
||||
}
|
||||
}
|
||||
|
||||
private void BoardToolBtnMouseLeave(object sender, MouseEventArgs e) {
|
||||
if (lastBoardToolBtnDownBorder == null) return;
|
||||
lastBoardToolBtnDownBorder = null;
|
||||
BoardMouseFeedbakBorder.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private void BoardSideBtnMouseLeave(object sender, MouseEventArgs e) {
|
||||
if (lastBoardSideBtnDownBorder == null) return;
|
||||
lastBoardSideBtnDownBorder = null;
|
||||
BoardSideBtnMouseFeedbakBorder.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private void BoardPenMouseUp(object sender, MouseButtonEventArgs e) {
|
||||
if (lastBoardToolBtnDownBorder == null) return;
|
||||
BoardToolBtnMouseLeave(sender, null);
|
||||
PenIcon_Click(null,null);
|
||||
}
|
||||
|
||||
private void BoardSelectMouseUp(object sender, MouseButtonEventArgs e) {
|
||||
if (lastBoardToolBtnDownBorder == null) return;
|
||||
BoardToolBtnMouseLeave(sender, null);
|
||||
SymbolIconSelect_MouseUp(null,null);
|
||||
}
|
||||
|
||||
private void BoardGestureMouseUp(object sender, MouseButtonEventArgs e) {
|
||||
if (lastBoardSideBtnDownBorder == null) return;
|
||||
BoardSideBtnMouseLeave(sender, null);
|
||||
TwoFingerGestureBorder_MouseUp(null, null);
|
||||
}
|
||||
|
||||
private void BoardChangeBackgroundColorBtn_MouseUp(object sender, RoutedEventArgs e) {
|
||||
if (lastBoardSideBtnDownBorder == null) return;
|
||||
BoardSideBtnMouseLeave(sender, null);
|
||||
UpdateBoardBackgroundPanelDisplayStatus();
|
||||
if (BoardBackgroundPopup.Visibility == Visibility.Visible) {
|
||||
AnimationsHelper.HideWithSlideAndFade(BoardBackgroundPopup);
|
||||
@ -16,7 +92,9 @@ namespace Ink_Canvas {
|
||||
}
|
||||
}
|
||||
|
||||
private void BoardEraserIcon_Click(object sender, RoutedEventArgs e) {
|
||||
private void BoardEraserMouseUp(object sender, RoutedEventArgs e) {
|
||||
if (lastBoardToolBtnDownBorder == null) return;
|
||||
BoardToolBtnMouseLeave(sender, null);
|
||||
if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint ||
|
||||
inkCanvas.EditingMode == InkCanvasEditingMode.EraseByStroke) {
|
||||
if (BoardEraserSizePanel.Visibility == Visibility.Collapsed) {
|
||||
@ -25,57 +103,26 @@ namespace Ink_Canvas {
|
||||
AnimationsHelper.HideWithSlideAndFade(BoardEraserSizePanel);
|
||||
}
|
||||
} else {
|
||||
forceEraser = true;
|
||||
forcePointEraser = true;
|
||||
double k = 1;
|
||||
if (Settings.Canvas.EraserShapeType == 0) {
|
||||
switch (BoardComboBoxEraserSize.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
k = 0.5;
|
||||
break;
|
||||
case 1:
|
||||
k = 0.8;
|
||||
break;
|
||||
case 3:
|
||||
k = 1.25;
|
||||
break;
|
||||
case 4:
|
||||
k = 1.8;
|
||||
break;
|
||||
EraserIcon_Click(null,null);
|
||||
}
|
||||
inkCanvas.EraserShape = new EllipseStylusShape(k * 90, k * 90);
|
||||
} else if (Settings.Canvas.EraserShapeType == 1) {
|
||||
switch (BoardComboBoxEraserSize.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
k = 0.7;
|
||||
break;
|
||||
case 1:
|
||||
k = 0.9;
|
||||
break;
|
||||
case 3:
|
||||
k = 1.2;
|
||||
break;
|
||||
case 4:
|
||||
k = 1.6;
|
||||
break;
|
||||
}
|
||||
inkCanvas.EraserShape = new RectangleStylusShape(k * 90 * 0.6, k * 90);
|
||||
}
|
||||
|
||||
// update tool selection
|
||||
SelectedMode = ICCToolsEnum.EraseByGeometryMode;
|
||||
ForceUpdateToolSelection(null);
|
||||
|
||||
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint;
|
||||
drawingShapeMode = 0;
|
||||
|
||||
inkCanvas_EditingModeChanged(inkCanvas, null);
|
||||
CancelSingleFingerDragMode();
|
||||
|
||||
HideSubPanels("eraser");
|
||||
private void BoardGeometryMouseUp(object sender, MouseButtonEventArgs e) {
|
||||
if (lastBoardToolBtnDownBorder == null) return;
|
||||
BoardToolBtnMouseLeave(sender, null);
|
||||
ImageDrawShape_MouseUp(null,null);
|
||||
}
|
||||
|
||||
private void BoardUndoMouseUp(object sender, MouseButtonEventArgs e) {
|
||||
if (lastBoardToolBtnDownBorder == null) return;
|
||||
BoardToolBtnMouseLeave(sender, null);
|
||||
SymbolIconUndo_MouseUp(null,null);
|
||||
}
|
||||
|
||||
private void BoardRedoMouseUp(object sender, MouseButtonEventArgs e) {
|
||||
if (lastBoardToolBtnDownBorder == null) return;
|
||||
BoardToolBtnMouseLeave(sender, null);
|
||||
SymbolIconRedo_MouseUp(null,null);
|
||||
}
|
||||
|
||||
private void BoardEraserIconByStrokes_Click(object sender, RoutedEventArgs e) {
|
||||
|
@ -387,7 +387,7 @@ namespace Ink_Canvas {
|
||||
|
||||
UnFoldFloatingBar_MouseUp(null, null);
|
||||
|
||||
if (inkCanvas.EditingMode == InkCanvasEditingMode.Select) PenIcon_Click(null, null);
|
||||
if (SelectedMode == ICCToolsEnum.CursorMode) PenIcon_Click(null, null);
|
||||
|
||||
if (currentMode == 0) {
|
||||
LeftBottomPanelForPPTNavigation.Visibility = Visibility.Collapsed;
|
||||
@ -746,8 +746,7 @@ namespace Ink_Canvas {
|
||||
RectangleSelectionHitTestBorder.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private void PenIcon_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
private void PenIcon_Click(object sender, RoutedEventArgs e) {
|
||||
|
||||
if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel)
|
||||
((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent);
|
||||
@ -842,13 +841,12 @@ namespace Ink_Canvas {
|
||||
/// </summary>
|
||||
/// <param name="sender">sender</param>
|
||||
/// <param name="e">MouseButtonEventArgs</param>
|
||||
private void SymbolIconSelect_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
|
||||
private void SymbolIconSelect_MouseUp(object sender, MouseButtonEventArgs e) {
|
||||
if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel)
|
||||
((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent);
|
||||
if (sender == SymbolIconSelect && lastBorderMouseDownObject != SymbolIconSelect) return;
|
||||
|
||||
|
||||
BtnSelect_Click(null, null);
|
||||
HideSubPanels("select");
|
||||
|
||||
|
@ -21,7 +21,7 @@ namespace Ink_Canvas {
|
||||
}
|
||||
|
||||
private CommitReason _currentCommitType = CommitReason.UserInput;
|
||||
private bool IsEraseByPoint => inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint;
|
||||
private bool IsEraseByPoint => SelectedMode == ICCToolsEnum.EraseByGeometryMode;
|
||||
private StrokeCollection ReplacedStroke;
|
||||
private StrokeCollection AddedStroke;
|
||||
private StrokeCollection CuboidStrokeCollection;
|
||||
|
Loading…
Reference in New Issue
Block a user