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

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" FontSize="14" Width="30" HorizontalAlignment="Center"
Visibility="{Binding Path=Visibility, ElementName=TouchMultiplierSlider, Mode=OneWay}"/> Visibility="{Binding Path=Visibility, ElementName=TouchMultiplierSlider, Mode=OneWay}"/>
</StackPanel> </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="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:ToggleSwitch Name="ToggleSwitchIsLogEnabled" Header="记录日志" FontFamily="Microsoft YaHei UI" OnContent="开" OffContent="关" IsOn="True" Toggled="ToggleSwitchIsLogEnabled_Toggled"/>
</ui:SimpleStackPanel> </ui:SimpleStackPanel>
</GroupBox> </GroupBox>

View File

@ -949,6 +949,8 @@ namespace Ink_Canvas
ToggleSwitchIsSpecialScreen.IsOn = false; ToggleSwitchIsSpecialScreen.IsOn = false;
} }
TouchMultiplierSlider.Visibility = ToggleSwitchIsSpecialScreen.IsOn ? Visibility.Visible : Visibility.Collapsed; TouchMultiplierSlider.Visibility = ToggleSwitchIsSpecialScreen.IsOn ? Visibility.Visible : Visibility.Collapsed;
ToggleSwitchIsQuadIR.IsOn = Settings.Advanced.IsQuadIR;
} }
else else
{ {
@ -1815,7 +1817,9 @@ namespace Ink_Canvas
public double GetTouchBoundWidth(TouchEventArgs e) public double GetTouchBoundWidth(TouchEventArgs e)
{ {
var args = e.GetTouchPoint(null).Bounds; 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; if (Settings.Advanced.IsSpecialScreen) value *= Settings.Advanced.TouchMultiplier;
return value; return value;
} }
@ -3129,6 +3133,16 @@ namespace Ink_Canvas
SaveSettingsToFile(); 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) private void ToggleSwitchEraserBindTouchMultiplier_Toggled(object sender, RoutedEventArgs e)
{ {
if (!isLoaded) return; if (!isLoaded) return;
@ -3136,6 +3150,13 @@ namespace Ink_Canvas
SaveSettingsToFile(); 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) private void ToggleSwitchIsLogEnabled_Toggled(object sender, RoutedEventArgs e)
{ {
if (!isLoaded) return; if (!isLoaded) return;

View File

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