[update] 我修啊修,似乎把鼠標(鼠標和觸筆)和觸摸的Capture整好了。中間忘了,後面還是忘了,哦對,FloatingBar的透明度整好了

This commit is contained in:
Dubi906w 2024-06-08 19:53:18 +08:00
parent e10d71787e
commit fe9cafb866
8 changed files with 87 additions and 22 deletions

View File

@ -160,7 +160,7 @@
</GeometryDrawing>
</DrawingGroup>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
@ -512,12 +512,26 @@
<Slider x:Name="ViewboxFloatingBarOpacityValueSlider" Minimum="0.3"
Maximum="1" Width="168" FontFamily="Microsoft YaHei UI"
FontSize="20" IsSnapToTickEnabled="True" Value="1" TickFrequency="0.05"
TickPlacement="None" AutoToolTipPlacement="None"/>
TickPlacement="None" AutoToolTipPlacement="None" ValueChanged="ViewboxFloatingBarOpacityValueSlider_ValueChanged"/>
<TextBlock
Text="{Binding ElementName=ViewboxFloatingBarOpacityValueSlider, Path=Value}"
VerticalAlignment="Center" FontSize="14" FontFamily="Consolas"
Margin="12,0,16,0" />
</ui:SimpleStackPanel>
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Foreground="#fafafa" Text="浮栏在PPT下透明度" VerticalAlignment="Center"
FontSize="14" Margin="0,0,16,0" />
<Slider x:Name="ViewboxFloatingBarOpacityInPPTValueSlider" Minimum="0.3"
Maximum="1" Width="168" FontFamily="Microsoft YaHei UI"
FontSize="20" IsSnapToTickEnabled="True" Value="1" TickFrequency="0.05"
TickPlacement="None" AutoToolTipPlacement="None" ValueChanged="ViewboxFloatingBarOpacityInPPTValueSlider_ValueChanged"/>
<TextBlock
Text="{Binding ElementName=ViewboxFloatingBarOpacityInPPTValueSlider, Path=Value}"
VerticalAlignment="Center" FontSize="14" FontFamily="Consolas"
Margin="12,0,16,0" />
</ui:SimpleStackPanel>
<TextBlock Text="# 重新进入PPT放映后生效"
TextWrapping="Wrap" Foreground="#a1a1aa" />
<Line HorizontalAlignment="Center" X1="0" Y1="0" X2="400" Y2="0"
Stroke="#3f3f46" StrokeThickness="1" Margin="0,4,0,4" />
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
@ -552,7 +566,7 @@
Toggled="ToggleSwitchEnableTimeDisplayInWhiteboardMode_Toggled" />
</ui:SimpleStackPanel>
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Foreground="#fafafa" Text="在白板中显示信仰の源(好喝的/毒的鸡汤)" VerticalAlignment="Center"
<TextBlock Foreground="#fafafa" Text="在白板中显示信仰の源1(好喝的/毒的鸡汤)" VerticalAlignment="Center"
FontSize="14" Margin="0,0,16,0" />
<ui:ToggleSwitch OnContent="" OffContent=""
Name="ToggleSwitchEnableChickenSoupInWhiteboardMode"
@ -1288,16 +1302,6 @@
ManipulationStarting="inkCanvas_ManipulationStarting"
SelectionChanged="inkCanvas_SelectionChanged"
StrokeCollected="inkCanvas_StrokeCollected" ClipToBounds="False" Background="Transparent" />
<InkCanvas x:Name="FakeInkCanvas" Background="Transparent" IsHitTestVisible="False" Visibility="Hidden"
ClipToBounds="False" Strokes="{Binding ElementName=inkCanvas, Path=Strokes}">
<InkCanvas.RenderTransform>
<TransformGroup>
<ScaleTransform CenterX="0" CenterY="0" ScaleX="1" ScaleY="1" x:Name="FakeICScaleTransform" />
<RotateTransform Angle="0" CenterX="0" CenterY="0" x:Name="FakeICRotateTransform" />
<TranslateTransform X="0" Y="0" x:Name="FakeICTranslateTransform" />
</TransformGroup>
</InkCanvas.RenderTransform>
</InkCanvas>
<Canvas IsHitTestVisible="False">
<ui:SimpleStackPanel Canvas.Left="25" Canvas.Top="15" Orientation="Vertical">
@ -4528,7 +4532,6 @@
Foreground="Black" FontSize="8" Margin="0,1,0,0" TextAlignment="Center" />
</ui:SimpleStackPanel>
<ui:SimpleStackPanel
MouseUp="SymbolIconRedo_MouseUp"
Background="Transparent" Orientation="Vertical"
HorizontalAlignment="Center"

View File

@ -319,6 +319,9 @@ namespace Ink_Canvas {
BoardSelect.BorderBrush = new SolidColorBrush(Color.FromRgb(161, 161, 170));
BoardEraser.BorderBrush = new SolidColorBrush(Color.FromRgb(161, 161, 170));
BoardPen.BorderBrush = new SolidColorBrush(Color.FromRgb(161, 161, 170));
FloatingbarSelectionBG.Visibility = Visibility.Hidden;
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 0);
}
switch (mode) {
@ -328,8 +331,11 @@ namespace Ink_Canvas {
PenIconGeometry.Geometry = Geometry.Parse(XamlGraphicsIconGeometries.SolidPenIcon);
BoardPen.Background = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardPen.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardPenGeometry.Brush = new SolidColorBrush(Colors.GhostWhite);
BoardPenGeometry.Brush = new SolidColorBrush(Colors.GhostWhite);
BoardPenLabel.Foreground = new SolidColorBrush(Colors.GhostWhite);
FloatingbarSelectionBG.Visibility = Visibility.Visible;
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 28);
break;
}
case "eraser": {
@ -340,6 +346,9 @@ namespace Ink_Canvas {
BoardEraser.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardEraserGeometry.Brush = new SolidColorBrush(Colors.GhostWhite);
BoardEraserLabel.Foreground = new SolidColorBrush(Colors.GhostWhite);
FloatingbarSelectionBG.Visibility = Visibility.Visible;
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 28 * 3);
break;
}
case "eraserByStrokes": {
@ -350,6 +359,9 @@ namespace Ink_Canvas {
BoardEraser.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardEraserGeometry.Brush = new SolidColorBrush(Colors.GhostWhite);
BoardEraserLabel.Foreground = new SolidColorBrush(Colors.GhostWhite);
FloatingbarSelectionBG.Visibility = Visibility.Visible;
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 28 * 4);
break;
}
case "select": {
@ -360,6 +372,9 @@ namespace Ink_Canvas {
BoardSelect.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardSelectGeometry.Brush = new SolidColorBrush(Colors.GhostWhite);
BoardSelectLabel.Foreground = new SolidColorBrush(Colors.GhostWhite);
FloatingbarSelectionBG.Visibility = Visibility.Visible;
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 28 * 5);
break;
}
}
@ -534,7 +549,8 @@ namespace Ink_Canvas {
Thread.Sleep(300);
Application.Current.Dispatcher.Invoke(() => { ViewboxFloatingBarMarginAnimation(60); });
})).Start();
if (Pen_Icon.Background == null) PenIcon_Click(null, null);
if (System.Windows.Controls.Canvas.GetLeft(FloatingbarSelectionBG)!=28) PenIcon_Click(null, null);
if (Settings.Gesture.AutoSwitchTwoFingerGesture) // 自动启用多指书写
ToggleSwitchEnableTwoFingerTranslate.IsOn = false;
@ -869,6 +885,7 @@ namespace Ink_Canvas {
private async void CursorIcon_Click(object sender, RoutedEventArgs e) {
// 隱藏高亮
FloatingbarSelectionBG.Visibility = Visibility.Hidden;
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 0);
// 切换前自动截图保存墨迹
if (inkCanvas.Strokes.Count > 0 &&

View File

@ -313,7 +313,7 @@ namespace Ink_Canvas {
BtnPPTSlideShowEnd.Visibility = Visibility.Visible;
ViewBoxStackPanelMain.Margin = new Thickness(10, 10, 10, 10);
ViewboxFloatingBar.Opacity = Settings.Appearance.IsColorfulViewboxFloatingBar ? 0.8 : 0.5;
ViewboxFloatingBar.Opacity = Settings.Appearance.ViewboxFloatingBarOpacityInPPTValue;
if (Settings.PowerPointSettings.IsShowCanvasAtNewSlideShow &&
GridTransparencyFakeBackground.Background == Brushes.Transparent) {
@ -438,10 +438,7 @@ namespace Ink_Canvas {
if (GridTransparencyFakeBackground.Background != Brushes.Transparent)
BtnHideInkCanvas_Click(BtnHideInkCanvas, null);
if (Settings.Appearance.IsColorfulViewboxFloatingBar)
ViewboxFloatingBar.Opacity = 0.95;
else
ViewboxFloatingBar.Opacity = 1;
ViewboxFloatingBar.Opacity = Settings.Appearance.ViewboxFloatingBarOpacityValue;
});
await Task.Delay(150);

View File

@ -145,6 +145,21 @@ namespace Ink_Canvas {
ViewboxFloatingBarMarginAnimation(100, true);
}
private void ViewboxFloatingBarOpacityValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!isLoaded) return;
Settings.Appearance.ViewboxFloatingBarOpacityValue = ViewboxFloatingBarOpacityValueSlider.Value;
SaveSettingsToFile();
ViewboxFloatingBar.Opacity = Settings.Appearance.ViewboxFloatingBarOpacityValue;
}
private void ViewboxFloatingBarOpacityInPPTValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!isLoaded) return;
Settings.Appearance.ViewboxFloatingBarOpacityInPPTValue = ViewboxFloatingBarOpacityInPPTValueSlider.Value;
SaveSettingsToFile();
}
private void ComboBoxUnFoldBtnImg_SelectionChanged(object sender, RoutedEventArgs e) {
if (!isLoaded) return;
Settings.Appearance.UnFoldButtonImageType = ComboBoxUnFoldBtnImg.SelectedIndex;
@ -817,6 +832,8 @@ namespace Ink_Canvas {
Settings.Appearance.EnableChickenSoupInWhiteboardMode = true;
Settings.Appearance.EnableTimeDisplayInWhiteboardMode = true;
Settings.Appearance.ChickenSoupSource = 1;
Settings.Appearance.ViewboxFloatingBarOpacityValue = 1.0;
Settings.Appearance.ViewboxFloatingBarOpacityInPPTValue = 1.0;
Settings.Automation.IsAutoFoldInEasiNote = true;
Settings.Automation.IsAutoFoldInEasiNoteIgnoreDesktopAnno = true;

View File

@ -200,6 +200,8 @@ namespace Ink_Canvas
ToggleSwitchEnableQuickPanel.IsOn = false;
}
ViewboxFloatingBar.Opacity = Settings.Appearance.ViewboxFloatingBarOpacityValue;
if (Settings.Appearance.EnableViewboxBlackBoardScaleTransform) // 画板 UI 缩放 80%
{
ViewboxBlackboardLeftSideScaleTransform.ScaleX = 0.8;

View File

@ -441,6 +441,7 @@ namespace Ink_Canvas {
private void MouseTouchMove(Point endP) {
if (Settings.Canvas.FitToCurve == true) drawingAttributes.FitToCurve = false;
ViewboxFloatingBar.IsHitTestVisible = false;
List<Point> pointList;
StylusPointCollection point;
Stroke stroke;
@ -1245,6 +1246,10 @@ namespace Ink_Canvas {
private Point CuboidFrontRectEndP = new Point();
private void Main_Grid_TouchUp(object sender, TouchEventArgs e) {
inkCanvas.ReleaseAllTouchCaptures();
ViewboxFloatingBar.IsHitTestVisible = true;
inkCanvas_MouseUp(sender, null);
if (dec.Count == 0) isWaitUntilNextTouchDown = false;
}
@ -1406,6 +1411,9 @@ namespace Ink_Canvas {
private bool isMouseDown = false;
private void inkCanvas_MouseDown(object sender, MouseButtonEventArgs e) {
inkCanvas.CaptureMouse();
ViewboxFloatingBar.IsHitTestVisible = false;
isMouseDown = true;
if (NeedUpdateIniP()) iniP = e.GetPosition(inkCanvas);
}
@ -1415,6 +1423,9 @@ namespace Ink_Canvas {
}
private void inkCanvas_MouseUp(object sender, MouseButtonEventArgs e) {
inkCanvas.ReleaseMouseCapture();
ViewboxFloatingBar.IsHitTestVisible = true;
if (drawingShapeMode == 5) {
if (lastTempStroke != null) {
var circle = new Circle(new Point(), 0, lastTempStroke);
@ -1542,6 +1553,9 @@ namespace Ink_Canvas {
lastTempStroke = null;
lastTempStrokeCollection = null;
lastTempManiputlaionMatrix = null;
ViewboxFloatingBar.IsHitTestVisible = true;
if (Settings.Canvas.FitToCurve == true) drawingAttributes.FitToCurve = true;
}

View File

@ -172,6 +172,10 @@ namespace Ink_Canvas {
private bool forcePointEraser = true;
private void Main_Grid_TouchDown(object sender, TouchEventArgs e) {
inkCanvas.CaptureTouch(e.TouchDevice);
ViewboxFloatingBar.IsHitTestVisible = false;
if (!isHidingSubPanelsWhenInking) {
isHidingSubPanelsWhenInking = true;
HideSubPanels(); // 书写时自动隐藏二级菜单
@ -247,6 +251,10 @@ namespace Ink_Canvas {
private bool isSingleFingerDragMode = false;
private void inkCanvas_PreviewTouchDown(object sender, TouchEventArgs e) {
inkCanvas.CaptureTouch(e.TouchDevice);
ViewboxFloatingBar.IsHitTestVisible = false;
dec.Add(e.TouchDevice.Id);
//设备1个的时候记录中心点
if (dec.Count == 1) {
@ -256,7 +264,6 @@ namespace Ink_Canvas {
//记录第一根手指点击时的 StrokeCollection
lastTouchDownStrokeCollection = inkCanvas.Strokes.Clone();
}
//设备两个及两个以上,将画笔功能关闭
if (dec.Count > 1 || isSingleFingerDragMode || !Settings.Gesture.IsEnableTwoFingerGesture) {
if (isInMultiTouchMode || !Settings.Gesture.IsEnableTwoFingerGesture) return;
@ -268,6 +275,10 @@ namespace Ink_Canvas {
}
private void inkCanvas_PreviewTouchUp(object sender, TouchEventArgs e) {
inkCanvas.ReleaseAllTouchCaptures();
ViewboxFloatingBar.IsHitTestVisible = true;
//手势完成后切回之前的状态
if (dec.Count > 1)
if (inkCanvas.EditingMode == InkCanvasEditingMode.None)

View File

@ -115,6 +115,10 @@ namespace Ink_Canvas
// public bool EnableViewboxFloatingBarScaleTransform { get; set; } = false;
[JsonProperty("viewboxFloatingBarScaleTransformValue")]
public double ViewboxFloatingBarScaleTransformValue { get; set; } = 1.0;
[JsonProperty("viewboxFloatingBarOpacityValue")]
public double ViewboxFloatingBarOpacityValue { get; set; } = 1.0;
[JsonProperty("viewboxFloatingBarOpacityInPPTValue")]
public double ViewboxFloatingBarOpacityInPPTValue { get; set; } = 0.5;
[JsonProperty("enableViewboxBlackBoardScaleTransform")]
public bool EnableViewboxBlackBoardScaleTransform { get; set; } = false;
[JsonProperty("isTransparentButtonBackground")]