add:issue #115
This commit is contained in:
@@ -916,6 +916,7 @@ namespace Ink_Canvas
|
|||||||
Settings.Canvas.AutoStraightenLine = true;
|
Settings.Canvas.AutoStraightenLine = true;
|
||||||
Settings.Canvas.AutoStraightenLineThreshold = 80;
|
Settings.Canvas.AutoStraightenLineThreshold = 80;
|
||||||
Settings.Canvas.PauseStraightenLine = false;
|
Settings.Canvas.PauseStraightenLine = false;
|
||||||
|
Settings.Canvas.PauseStraightenDelay = 300;
|
||||||
Settings.Canvas.LineEndpointSnapping = true;
|
Settings.Canvas.LineEndpointSnapping = true;
|
||||||
Settings.Canvas.LineEndpointSnappingThreshold = 15;
|
Settings.Canvas.LineEndpointSnappingThreshold = 15;
|
||||||
Settings.Canvas.UsingWhiteboard = false;
|
Settings.Canvas.UsingWhiteboard = false;
|
||||||
|
|||||||
@@ -1014,10 +1014,11 @@ namespace Ink_Canvas
|
|||||||
if (_pauseStraightenTimers.TryGetValue(stylusId, out var existing))
|
if (_pauseStraightenTimers.TryGetValue(stylusId, out var existing))
|
||||||
{
|
{
|
||||||
existing.Stop();
|
existing.Stop();
|
||||||
|
existing.Interval = TimeSpan.FromMilliseconds(Settings.Canvas.PauseStraightenDelay);
|
||||||
existing.Start();
|
existing.Start();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(PauseStraightenDelayMs) };
|
var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(Settings.Canvas.PauseStraightenDelay) };
|
||||||
var capturedId = stylusId;
|
var capturedId = stylusId;
|
||||||
timer.Tick += (s, e) =>
|
timer.Tick += (s, e) =>
|
||||||
{
|
{
|
||||||
@@ -1038,10 +1039,11 @@ namespace Ink_Canvas
|
|||||||
if (_pauseStraightenTimers.TryGetValue(inkModeId, out var existing))
|
if (_pauseStraightenTimers.TryGetValue(inkModeId, out var existing))
|
||||||
{
|
{
|
||||||
existing.Stop();
|
existing.Stop();
|
||||||
|
existing.Interval = TimeSpan.FromMilliseconds(Settings.Canvas.PauseStraightenDelay);
|
||||||
existing.Start();
|
existing.Start();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(PauseStraightenDelayMs) };
|
var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(Settings.Canvas.PauseStraightenDelay) };
|
||||||
timer.Tick += (s, e) =>
|
timer.Tick += (s, e) =>
|
||||||
{
|
{
|
||||||
timer.Stop();
|
timer.Stop();
|
||||||
|
|||||||
@@ -636,6 +636,9 @@
|
|||||||
<data name="InkRecog_PauseStraightenHint" xml:space="preserve">
|
<data name="InkRecog_PauseStraightenHint" xml:space="preserve">
|
||||||
<value>书写中停顿时,自动将当前笔画拉直为直线(需同时开启直线自动拉直)。</value>
|
<value>书写中停顿时,自动将当前笔画拉直为直线(需同时开启直线自动拉直)。</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="InkRecog_PauseStraightenDelay" xml:space="preserve">
|
||||||
|
<value>停顿触发延迟</value>
|
||||||
|
</data>
|
||||||
<data name="InkRecog_LineEndpointSnapping" xml:space="preserve">
|
<data name="InkRecog_LineEndpointSnapping" xml:space="preserve">
|
||||||
<value>直线端点吸附</value>
|
<value>直线端点吸附</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -110,6 +110,8 @@ namespace Ink_Canvas
|
|||||||
public bool HighPrecisionLineStraighten { get; set; } = true; // 是否启用高精度直线拉直
|
public bool HighPrecisionLineStraighten { get; set; } = true; // 是否启用高精度直线拉直
|
||||||
[JsonProperty("pauseStraightenLine")]
|
[JsonProperty("pauseStraightenLine")]
|
||||||
public bool PauseStraightenLine { get; set; } = false; // 是否启用停顿拉直(书写中停顿时自动拉直笔画)
|
public bool PauseStraightenLine { get; set; } = false; // 是否启用停顿拉直(书写中停顿时自动拉直笔画)
|
||||||
|
[JsonProperty("pauseStraightenDelay")]
|
||||||
|
public int PauseStraightenDelay { get; set; } = 300; // 停顿拉直触发延迟(毫秒)
|
||||||
[JsonProperty("lineEndpointSnapping")]
|
[JsonProperty("lineEndpointSnapping")]
|
||||||
public bool LineEndpointSnapping { get; set; } = true; // 是否启用直线端点吸附
|
public bool LineEndpointSnapping { get; set; } = true; // 是否启用直线端点吸附
|
||||||
[JsonProperty("lineEndpointSnappingThreshold")]
|
[JsonProperty("lineEndpointSnappingThreshold")]
|
||||||
|
|||||||
@@ -164,6 +164,15 @@
|
|||||||
OffContent="{DynamicResource Common_Off}"
|
OffContent="{DynamicResource Common_Off}"
|
||||||
Toggled="ToggleSwitchPauseStraightenLine_Toggled" />
|
Toggled="ToggleSwitchPauseStraightenLine_Toggled" />
|
||||||
</ui:SettingsCard>
|
</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.Items>
|
||||||
</ui:SettingsExpander>
|
</ui:SettingsExpander>
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ namespace Ink_Canvas.Windows.SettingsViews.Pages
|
|||||||
AutoStraightenLineThresholdSlider.Value = settings.Canvas.AutoStraightenLineThreshold;
|
AutoStraightenLineThresholdSlider.Value = settings.Canvas.AutoStraightenLineThreshold;
|
||||||
ToggleSwitchHighPrecisionLineStraighten.IsOn = settings.Canvas.HighPrecisionLineStraighten;
|
ToggleSwitchHighPrecisionLineStraighten.IsOn = settings.Canvas.HighPrecisionLineStraighten;
|
||||||
ToggleSwitchPauseStraightenLine.IsOn = settings.Canvas.PauseStraightenLine;
|
ToggleSwitchPauseStraightenLine.IsOn = settings.Canvas.PauseStraightenLine;
|
||||||
|
PauseStraightenDelaySlider.Value = settings.Canvas.PauseStraightenDelay;
|
||||||
ToggleSwitchLineEndpointSnapping.IsOn = settings.Canvas.LineEndpointSnapping;
|
ToggleSwitchLineEndpointSnapping.IsOn = settings.Canvas.LineEndpointSnapping;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -200,6 +201,13 @@ namespace Ink_Canvas.Windows.SettingsViews.Pages
|
|||||||
SettingsManager.SaveSettingsToFile();
|
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)
|
private void ToggleSwitchLineEndpointSnapping_Toggled(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (!_isLoaded) return;
|
if (!_isLoaded) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user