新增四边红外模式,新增计算触摸倍率功能

This commit is contained in:
STBBRD 2023-06-07 09:38:32 +08:00
parent 264513b8f5
commit 3aeca762f4
3 changed files with 40 additions and 8 deletions

View File

@ -523,7 +523,16 @@
FontSize="14" Width="30" HorizontalAlignment="Center"
Visibility="{Binding Path=Visibility, ElementName=TouchMultiplierSlider, Mode=OneWay}"/>
</StackPanel>
<ui:SimpleStackPanel Spacing="8" Margin="0,4,0,4">
<TextBlock FontSize="14" Text="在下方用笔尖点击以估计触摸大小倍数" Visibility="{Binding Visibility,ElementName=TouchMultiplierSlider}"/>
<TextBlock Text="数值仅供参考" Foreground="#666666" Visibility="{Binding Visibility,ElementName=TouchMultiplierSlider}"/>
<Border CornerRadius="4" Height="48" Background="#cccccc" Visibility="{Binding Visibility,ElementName=TouchMultiplierSlider}" TouchDown="BorderCalculateMultiplier_TouchDown"/>
<TextBlock Name="TextBlockShowCalculatedMultiplier" FontSize="14" Visibility="{Binding Visibility,ElementName=TouchMultiplierSlider}"/>
</ui:SimpleStackPanel>
<ui:ToggleSwitch Name="ToggleSwitchEraserBindTouchMultiplier" Header="橡皮擦绑定触摸大小倍数" FontFamily="Microsoft YaHei UI" OnContent="开" OffContent="关" IsOn="False" Toggled="ToggleSwitchEraserBindTouchMultiplier_Toggled" Visibility="{Binding Path=Visibility, ElementName=TouchMultiplierSlider, Mode=OneWay}"/>
<ui:ToggleSwitch Name="ToggleSwitchIsQuadIR" Header="四边红外模式" FontFamily="Microsoft YaHei UI" OnContent="开" OffContent="关" Toggled="ToggleSwitchIsQuadIR_Toggled"/>
<ui:ToggleSwitch Name="ToggleSwitchIsLogEnabled" Header="记录日志" FontFamily="Microsoft YaHei UI" OnContent="开" OffContent="关" IsOn="True" Toggled="ToggleSwitchIsLogEnabled_Toggled"/>
</ui:SimpleStackPanel>
</GroupBox>

View File

@ -949,6 +949,8 @@ namespace Ink_Canvas
ToggleSwitchIsSpecialScreen.IsOn = false;
}
TouchMultiplierSlider.Visibility = ToggleSwitchIsSpecialScreen.IsOn ? Visibility.Visible : Visibility.Collapsed;
ToggleSwitchIsQuadIR.IsOn = Settings.Advanced.IsQuadIR;
}
else
{
@ -1815,7 +1817,9 @@ namespace Ink_Canvas
public double GetTouchBoundWidth(TouchEventArgs e)
{
var args = e.GetTouchPoint(null).Bounds;
double value = args.Width;
double value;
if (!Settings.Advanced.IsQuadIR) value = args.Width;
else value = Math.Sqrt(args.Width * args.Height); //四边红外
if (Settings.Advanced.IsSpecialScreen) value *= Settings.Advanced.TouchMultiplier;
return value;
}
@ -3129,6 +3133,16 @@ namespace Ink_Canvas
SaveSettingsToFile();
}
private void BorderCalculateMultiplier_TouchDown(object sender, TouchEventArgs e)
{
var args = e.GetTouchPoint(null).Bounds;
double value;
if (!Settings.Advanced.IsQuadIR) value = args.Width;
else value = Math.Sqrt(args.Width * args.Height); //四边红外
TextBlockShowCalculatedMultiplier.Text = (5 / (value * 1.1)).ToString();
}
private void ToggleSwitchEraserBindTouchMultiplier_Toggled(object sender, RoutedEventArgs e)
{
if (!isLoaded) return;
@ -3136,6 +3150,13 @@ namespace Ink_Canvas
SaveSettingsToFile();
}
private void ToggleSwitchIsQuadIR_Toggled(object sender, RoutedEventArgs e)
{
if (!isLoaded) return;
Settings.Advanced.IsQuadIR = ToggleSwitchIsQuadIR.IsOn;
SaveSettingsToFile();
}
private void ToggleSwitchIsLogEnabled_Toggled(object sender, RoutedEventArgs e)
{
if (!isLoaded) return;

View File

@ -144,10 +144,12 @@ namespace Ink_Canvas
{
[JsonProperty("isSpecialScreen")]
public bool IsSpecialScreen { get; set; } = false;
[JsonProperty("isQuadIR")]
public bool IsQuadIR { get; set; } = false;
[JsonProperty("touchMultiplier")]
public double TouchMultiplier { get; set; } = 0.25;
[JsonProperty("eraserBindTouchMultiplier")]
public bool EraserBindTouchMultiplier { get; set; } = false;
public bool EraserBindTouchMultiplier { get; set; } = true;
[JsonProperty("isLogEnabled")]
public bool IsLogEnabled { get; set; } = true;
}