This commit is contained in:
2026-05-02 16:22:27 +08:00
parent aea4c2ce3c
commit f825211987
6 changed files with 27 additions and 2 deletions
+1
View File
@@ -916,6 +916,7 @@ namespace Ink_Canvas
Settings.Canvas.AutoStraightenLine = true;
Settings.Canvas.AutoStraightenLineThreshold = 80;
Settings.Canvas.PauseStraightenLine = false;
Settings.Canvas.PauseStraightenDelay = 300;
Settings.Canvas.LineEndpointSnapping = true;
Settings.Canvas.LineEndpointSnappingThreshold = 15;
Settings.Canvas.UsingWhiteboard = false;
+4 -2
View File
@@ -1014,10 +1014,11 @@ namespace Ink_Canvas
if (_pauseStraightenTimers.TryGetValue(stylusId, out var existing))
{
existing.Stop();
existing.Interval = TimeSpan.FromMilliseconds(Settings.Canvas.PauseStraightenDelay);
existing.Start();
return;
}
var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(PauseStraightenDelayMs) };
var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(Settings.Canvas.PauseStraightenDelay) };
var capturedId = stylusId;
timer.Tick += (s, e) =>
{
@@ -1038,10 +1039,11 @@ namespace Ink_Canvas
if (_pauseStraightenTimers.TryGetValue(inkModeId, out var existing))
{
existing.Stop();
existing.Interval = TimeSpan.FromMilliseconds(Settings.Canvas.PauseStraightenDelay);
existing.Start();
return;
}
var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(PauseStraightenDelayMs) };
var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(Settings.Canvas.PauseStraightenDelay) };
timer.Tick += (s, e) =>
{
timer.Stop();
+3
View File
@@ -636,6 +636,9 @@
<data name="InkRecog_PauseStraightenHint" xml:space="preserve">
<value>书写中停顿时,自动将当前笔画拉直为直线(需同时开启直线自动拉直)。</value>
</data>
<data name="InkRecog_PauseStraightenDelay" xml:space="preserve">
<value>停顿触发延迟</value>
</data>
<data name="InkRecog_LineEndpointSnapping" xml:space="preserve">
<value>直线端点吸附</value>
</data>
+2
View File
@@ -110,6 +110,8 @@ namespace Ink_Canvas
public bool HighPrecisionLineStraighten { get; set; } = true; // 是否启用高精度直线拉直
[JsonProperty("pauseStraightenLine")]
public bool PauseStraightenLine { get; set; } = false; // 是否启用停顿拉直(书写中停顿时自动拉直笔画)
[JsonProperty("pauseStraightenDelay")]
public int PauseStraightenDelay { get; set; } = 300; // 停顿拉直触发延迟(毫秒)
[JsonProperty("lineEndpointSnapping")]
public bool LineEndpointSnapping { get; set; } = true; // 是否启用直线端点吸附
[JsonProperty("lineEndpointSnappingThreshold")]
@@ -164,6 +164,15 @@
OffContent="{DynamicResource Common_Off}"
Toggled="ToggleSwitchPauseStraightenLine_Toggled" />
</ui:SettingsCard>
<ui:SettingsCard Header="{i18n:I18n Key=InkRecog_PauseStraightenDelay}">
<ikw:SimpleStackPanel Orientation="Horizontal" Spacing="8">
<TextBlock Text="{Binding Value, ElementName=PauseStraightenDelaySlider, StringFormat={}{0:0} ms}"
VerticalAlignment="Center" FontFamily="Consolas"/>
<Slider x:Name="PauseStraightenDelaySlider" Width="200" Minimum="100" Maximum="1000"
Value="300" TickFrequency="50" IsSnapToTickEnabled="True"
ValueChanged="PauseStraightenDelaySlider_ValueChanged" />
</ikw:SimpleStackPanel>
</ui:SettingsCard>
</ui:SettingsExpander.Items>
</ui:SettingsExpander>
@@ -53,6 +53,7 @@ namespace Ink_Canvas.Windows.SettingsViews.Pages
AutoStraightenLineThresholdSlider.Value = settings.Canvas.AutoStraightenLineThreshold;
ToggleSwitchHighPrecisionLineStraighten.IsOn = settings.Canvas.HighPrecisionLineStraighten;
ToggleSwitchPauseStraightenLine.IsOn = settings.Canvas.PauseStraightenLine;
PauseStraightenDelaySlider.Value = settings.Canvas.PauseStraightenDelay;
ToggleSwitchLineEndpointSnapping.IsOn = settings.Canvas.LineEndpointSnapping;
}
}
@@ -200,6 +201,13 @@ namespace Ink_Canvas.Windows.SettingsViews.Pages
SettingsManager.SaveSettingsToFile();
}
private void PauseStraightenDelaySlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (!_isLoaded) return;
SettingsManager.Settings.Canvas.PauseStraightenDelay = (int)PauseStraightenDelaySlider.Value;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchLineEndpointSnapping_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;