add:快捷调色盘

This commit is contained in:
2025-08-11 20:19:01 +08:00
parent 07c7acc37a
commit 87356215c3
6 changed files with 347 additions and 8 deletions
+202
View File
@@ -1227,6 +1227,14 @@
Toggled="ToggleSwitchShowHideButton_Toggled" />
</ui:SimpleStackPanel>
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Foreground="#fafafa" Text="显示快捷调色盘" VerticalAlignment="Center"
FontSize="14" Margin="0,0,16,0" />
<ui:ToggleSwitch OnContent="" OffContent="" Name="ToggleSwitchShowQuickColorPalette"
IsOn="False" FontFamily="Microsoft YaHei UI" FontWeight="Bold"
Toggled="ToggleSwitchShowQuickColorPalette_Toggled" />
</ui:SimpleStackPanel>
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Foreground="#fafafa" Text="橡皮按钮显示" VerticalAlignment="Center"
FontSize="14" Margin="0,0,16,0" />
@@ -6239,6 +6247,200 @@
<TextBlock x:Name="PenToolbarTextBlock" Text="批注" Foreground="Black" FontSize="8"
Margin="0,1,0,0" TextAlignment="Center" />
</ui:SimpleStackPanel>
<!-- 快捷调色盘 -->
<ui:SimpleStackPanel Name="QuickColorPalettePanel"
Visibility="Collapsed"
Orientation="Horizontal"
HorizontalAlignment="Center"
Margin="4,0,4,0">
<!-- 白色 -->
<Border Name="QuickColorWhite"
Width="16" Height="16"
Background="White"
BorderBrush="#CCCCCC"
BorderThickness="1"
CornerRadius="8"
Margin="1,0,1,0"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="QuickColorWhite_Click"
ToolTip="白色">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="BorderBrush" Value="#666666"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
<Canvas>
<Ellipse Name="QuickColorWhiteIndicator"
Width="6" Height="6"
Fill="Green"
Canvas.Left="5" Canvas.Top="5"
Visibility="Collapsed"/>
</Canvas>
</Border>
<!-- 橙色 -->
<Border Name="QuickColorOrange"
Width="16" Height="16"
Background="#FFA500"
BorderBrush="#CCCCCC"
BorderThickness="1"
CornerRadius="8"
Margin="1,0,1,0"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="QuickColorOrange_Click"
ToolTip="橙色">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="BorderBrush" Value="#666666"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
<Canvas>
<Ellipse Name="QuickColorOrangeIndicator"
Width="6" Height="6"
Fill="Green"
Canvas.Left="5" Canvas.Top="5"
Visibility="Collapsed"/>
</Canvas>
</Border>
<!-- 黄色 -->
<Border Name="QuickColorYellow"
Width="16" Height="16"
Background="#FFFF00"
BorderBrush="#CCCCCC"
BorderThickness="1"
CornerRadius="8"
Margin="1,0,1,0"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="QuickColorYellow_Click"
ToolTip="黄色">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="BorderBrush" Value="#666666"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
<Canvas>
<Ellipse Name="QuickColorYellowIndicator"
Width="6" Height="6"
Fill="Green"
Canvas.Left="5" Canvas.Top="5"
Visibility="Collapsed"/>
</Canvas>
</Border>
<!-- 黑色 -->
<Border Name="QuickColorBlack"
Width="16" Height="16"
Background="Black"
BorderBrush="#CCCCCC"
BorderThickness="1"
CornerRadius="8"
Margin="1,0,1,0"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="QuickColorBlack_Click"
ToolTip="黑色">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="BorderBrush" Value="#666666"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
<Canvas>
<Ellipse Name="QuickColorBlackIndicator"
Width="6" Height="6"
Fill="Green"
Canvas.Left="5" Canvas.Top="5"
Visibility="Collapsed"/>
</Canvas>
</Border>
<!-- 蓝色 -->
<Border Name="QuickColorBlue"
Width="16" Height="16"
Background="#0066FF"
BorderBrush="#CCCCCC"
BorderThickness="1"
CornerRadius="8"
Margin="1,0,1,0"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="QuickColorBlue_Click"
ToolTip="蓝色">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="BorderBrush" Value="#666666"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
<Canvas>
<Ellipse Name="QuickColorBlueIndicator"
Width="6" Height="6"
Fill="Green"
Canvas.Left="5" Canvas.Top="5"
Visibility="Collapsed"/>
</Canvas>
</Border>
<!-- 红色 -->
<Border Name="QuickColorRed"
Width="16" Height="16"
Background="#FF0000"
BorderBrush="#CCCCCC"
BorderThickness="1"
CornerRadius="8"
Margin="1,0,1,0"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="QuickColorRed_Click"
ToolTip="红色">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="BorderBrush" Value="#666666"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
<Canvas>
<Ellipse Name="QuickColorRedIndicator"
Width="6" Height="6"
Fill="Green"
Canvas.Left="5" Canvas.Top="5"
Visibility="Collapsed"/>
</Canvas>
</Border>
</ui:SimpleStackPanel>
<ui:SimpleStackPanel Name="SymbolIconDelete"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
+6
View File
@@ -415,6 +415,12 @@ namespace Ink_Canvas
BoardHighlighterPenViewboxBtnColorOrangeContent.Visibility = Visibility.Visible;
break;
}
// 更新快捷调色盘选择指示器
if (penType == 0)
{
UpdateQuickColorPaletteIndicator(inkCanvas.DefaultDrawingAttributes.Color);
}
}
private void CheckLastColor(int inkColor, bool isHighlighter = false)
+118 -7
View File
@@ -771,17 +771,31 @@ namespace Ink_Canvas
private void FloatingBarToolBtnMouseDownFeedback_Panel(object sender, MouseButtonEventArgs e)
{
var s = (Panel)sender;
lastBorderMouseDownObject = sender;
if (s == SymbolIconDelete) s.Background = new SolidColorBrush(Color.FromArgb(28, 127, 29, 29));
else s.Background = new SolidColorBrush(Color.FromArgb(28, 24, 24, 27));
if (sender is Panel panel)
{
lastBorderMouseDownObject = sender;
if (panel == SymbolIconDelete) panel.Background = new SolidColorBrush(Color.FromArgb(28, 127, 29, 29));
else panel.Background = new SolidColorBrush(Color.FromArgb(28, 24, 24, 27));
}
else if (sender is Border border)
{
lastBorderMouseDownObject = sender;
border.Background = new SolidColorBrush(Color.FromArgb(28, 24, 24, 27));
}
}
private void FloatingBarToolBtnMouseLeaveFeedback_Panel(object sender, MouseEventArgs e)
{
var s = (Panel)sender;
lastBorderMouseDownObject = null;
s.Background = new SolidColorBrush(Colors.Transparent);
if (sender is Panel panel)
{
lastBorderMouseDownObject = null;
panel.Background = new SolidColorBrush(Colors.Transparent);
}
else if (sender is Border border)
{
lastBorderMouseDownObject = null;
border.Background = new SolidColorBrush(Colors.Transparent);
}
}
private void SymbolIconSettings_Click(object sender, RoutedEventArgs e)
@@ -1762,6 +1776,103 @@ namespace Ink_Canvas
CursorIcon_Click(null, null);
}
// 快捷调色盘事件处理方法
private void QuickColorWhite_Click(object sender, RoutedEventArgs e)
{
SetQuickColor(Colors.White);
}
private void QuickColorOrange_Click(object sender, RoutedEventArgs e)
{
SetQuickColor(Color.FromRgb(255, 165, 0)); // 橙色
}
private void QuickColorYellow_Click(object sender, RoutedEventArgs e)
{
SetQuickColor(Colors.Yellow);
}
private void QuickColorBlack_Click(object sender, RoutedEventArgs e)
{
SetQuickColor(Colors.Black);
}
private void QuickColorBlue_Click(object sender, RoutedEventArgs e)
{
SetQuickColor(Color.FromRgb(0, 102, 255)); // 蓝色
}
private void QuickColorRed_Click(object sender, RoutedEventArgs e)
{
SetQuickColor(Colors.Red);
}
private void SetQuickColor(Color color)
{
// 确保当前处于批注模式
if (inkCanvas.EditingMode != InkCanvasEditingMode.Ink)
{
PenIcon_Click(null, null);
}
// 设置画笔颜色
drawingAttributes.Color = color;
inkCanvas.DefaultDrawingAttributes.Color = color;
// 更新颜色状态
if (currentMode == 0)
{
// 桌面模式
if (color == Colors.White) lastDesktopInkColor = 5;
else if (color == Color.FromRgb(255, 165, 0)) lastDesktopInkColor = 8; // 橙色
else if (color == Colors.Yellow) lastDesktopInkColor = 4;
else if (color == Colors.Black) lastDesktopInkColor = 0;
else if (color == Color.FromRgb(0, 102, 255)) lastDesktopInkColor = 3; // 蓝色
else if (color == Colors.Red) lastDesktopInkColor = 1;
}
else
{
// 白板模式
if (color == Colors.White) lastBoardInkColor = 5;
else if (color == Color.FromRgb(255, 165, 0)) lastBoardInkColor = 8; // 橙色
else if (color == Colors.Yellow) lastBoardInkColor = 4;
else if (color == Colors.Black) lastBoardInkColor = 0;
else if (color == Color.FromRgb(0, 102, 255)) lastBoardInkColor = 3; // 蓝色
else if (color == Colors.Red) lastBoardInkColor = 1;
}
// 更新快捷调色盘选择指示器
UpdateQuickColorPaletteIndicator(color);
// 更新颜色显示
ColorSwitchCheck();
}
private void UpdateQuickColorPaletteIndicator(Color selectedColor)
{
// 隐藏所有指示器
QuickColorWhiteIndicator.Visibility = Visibility.Collapsed;
QuickColorOrangeIndicator.Visibility = Visibility.Collapsed;
QuickColorYellowIndicator.Visibility = Visibility.Collapsed;
QuickColorBlackIndicator.Visibility = Visibility.Collapsed;
QuickColorBlueIndicator.Visibility = Visibility.Collapsed;
QuickColorRedIndicator.Visibility = Visibility.Collapsed;
// 显示当前选中颜色的指示器
if (selectedColor == Colors.White)
QuickColorWhiteIndicator.Visibility = Visibility.Visible;
else if (selectedColor == Color.FromRgb(255, 165, 0)) // 橙色
QuickColorOrangeIndicator.Visibility = Visibility.Visible;
else if (selectedColor == Colors.Yellow)
QuickColorYellowIndicator.Visibility = Visibility.Visible;
else if (selectedColor == Colors.Black)
QuickColorBlackIndicator.Visibility = Visibility.Visible;
else if (selectedColor == Color.FromRgb(0, 102, 255)) // 蓝色
QuickColorBlueIndicator.Visibility = Visibility.Visible;
else if (selectedColor == Colors.Red)
QuickColorRedIndicator.Visibility = Visibility.Visible;
}
private void SelectIcon_MouseUp(object sender, RoutedEventArgs e)
{
// 禁用高级橡皮擦系统
+13
View File
@@ -1861,6 +1861,7 @@ namespace Ink_Canvas
Settings.Appearance.IsShowClearButton = true;
Settings.Appearance.IsShowWhiteboardButton = true;
Settings.Appearance.IsShowHideButton = true;
Settings.Appearance.IsShowQuickColorPalette = false;
Settings.Appearance.EraserDisplayOption = 0;
Settings.Automation.IsAutoFoldInEasiNote = true;
@@ -2388,6 +2389,14 @@ namespace Ink_Canvas
SaveSettingsToFile();
}
private void ToggleSwitchShowQuickColorPalette_Toggled(object sender, RoutedEventArgs e)
{
if (!isLoaded) return;
Settings.Appearance.IsShowQuickColorPalette = ToggleSwitchShowQuickColorPalette.IsOn;
UpdateFloatingBarButtonsVisibility();
SaveSettingsToFile();
}
private void ComboBoxEraserDisplayOption_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!isLoaded) return;
@@ -2425,6 +2434,10 @@ namespace Ink_Canvas
if (Fold_Icon != null)
Fold_Icon.Visibility = Settings.Appearance.IsShowHideButton ? Visibility.Visible : Visibility.Collapsed;
// 快捷调色盘
if (QuickColorPalettePanel != null)
QuickColorPalettePanel.Visibility = Settings.Appearance.IsShowQuickColorPalette ? Visibility.Visible : Visibility.Collapsed;
// 橡皮按钮显示控制
if (Eraser_Icon != null && EraserByStrokes_Icon != null)
{
@@ -313,8 +313,12 @@ namespace Ink_Canvas
ToggleSwitchShowClearButton.IsOn = Settings.Appearance.IsShowClearButton;
ToggleSwitchShowWhiteboardButton.IsOn = Settings.Appearance.IsShowWhiteboardButton;
ToggleSwitchShowHideButton.IsOn = Settings.Appearance.IsShowHideButton;
ToggleSwitchShowQuickColorPalette.IsOn = Settings.Appearance.IsShowQuickColorPalette;
ComboBoxEraserDisplayOption.SelectedIndex = Settings.Appearance.EraserDisplayOption;
// 初始化快捷调色盘指示器
UpdateQuickColorPaletteIndicator(inkCanvas.DefaultDrawingAttributes.Color);
// 应用浮动栏按钮可见性设置
UpdateFloatingBarButtonsVisibility();
+4 -1
View File
@@ -210,7 +210,10 @@ namespace Ink_Canvas
public bool IsShowHideButton { get; set; } = true;
[JsonProperty("eraserDisplayOption")]
public int EraserDisplayOption { get; set; } = 0;
public int EraserDisplayOption { get; set; } = 0;
[JsonProperty("isShowQuickColorPalette")]
public bool IsShowQuickColorPalette { get; set; } = false;
}
public class PowerPointSettings