Files
community/Ink Canvas/Windows/SettingsViews/Pages/InkRecognitionPage.xaml
T

210 lines
15 KiB
XML
Raw Normal View History

<ui:Page x:Class="Ink_Canvas.Windows.SettingsViews.Pages.InkRecognitionPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Ink_Canvas.Windows.SettingsViews.Pages"
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:i18n="clr-namespace:Ink_Canvas.MarkupExtensions"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:controls="clr-namespace:Ink_Canvas.Controls;assembly=InkCanvas.Controls"
xmlns:c="clr-namespace:Ink_Canvas.Converter"
mc:Ignorable="d"
Title="墨迹纠正">
<ScrollViewer PanningMode="VerticalFirst">
<Grid Margin="59,0,59,0">
<FrameworkElement.Resources>
<sys:Double x:Key="SettingsCardSpacing">4</sys:Double>
<c:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<Style x:Key="SettingsSectionHeaderTextBlockStyle"
BasedOn="{StaticResource BodyStrongTextBlockStyle}"
TargetType="TextBlock">
<Style.Setters>
<Setter Property="Margin" Value="1,30,0,6" />
</Style.Setters>
</Style>
</FrameworkElement.Resources>
<Grid>
<ikw:SimpleStackPanel MaxWidth="1000" HorizontalAlignment="Stretch"
Spacing="{StaticResource SettingsCardSpacing}">
<TextBlock Style="{StaticResource SettingsSectionHeaderTextBlockStyle}"
Text="{i18n:I18n Key=InkRecog_Title}" />
<controls:LabeledSettingsCard x:Name="CardEnableInkToShape"
Header="{i18n:I18n Key=InkRecog_EnableInkRecognition}"
Icon="{x:Static ui:SegoeFluentIcons.Draw}"
SwitchName="ToggleSwitchEnableInkToShape"
Toggled="ToggleSwitchEnableInkToShape_Toggled" />
<ui:SettingsCard Header="{i18n:I18n Key=InkRecog_ShapeEngine}"
Description="{i18n:I18n Key=InkRecog_ShapeEngineHint}">
<ComboBox x:Name="ComboBoxShapeRecognitionEngine"
SelectionChanged="ComboBoxShapeRecognitionEngine_SelectionChanged">
<ComboBoxItem Content="{i18n:I18n Key=InkRecog_ShapeEngineAuto}" />
<ComboBoxItem Content="{i18n:I18n Key=InkRecog_ShapeEngineIACore}" />
<ComboBoxItem Content="{i18n:I18n Key=InkRecog_ShapeEngineWinRT}" />
</ComboBox>
</ui:SettingsCard>
<controls:LabeledSettingsCard x:Name="CardEnableWinRtHandwritingStrokeBeautify"
Header="{i18n:I18n Key=InkRecog_HandwritingBeautify}"
Description="{i18n:I18n Key=InkRecog_HandwritingBeautifyHint}"
Icon="{x:Static ui:SegoeFluentIcons.PenWorkspace}"
SwitchName="ToggleSwitchEnableWinRtHandwritingStrokeBeautify"
Toggled="ToggleSwitchEnableWinRtHandwritingStrokeBeautify_Toggled" />
2026-05-01 21:58:09 +08:00
<ui:SettingsCard Header="{i18n:I18n Key=InkRecog_HandwritingFont}"
Description="{i18n:I18n Key=InkRecog_HandwritingFontHint}"
Visibility="{Binding IsOn, ElementName=CardEnableWinRtHandwritingStrokeBeautify, Converter={StaticResource BooleanToVisibilityConverter}}"
d:Visibility="Visible">
<ComboBox x:Name="ComboBoxHandwritingCorrectionFont" MinWidth="220"
SelectionChanged="ComboBoxHandwritingCorrectionFont_SelectionChanged">
<ComboBoxItem Content="Ink Free / 楷体 / Segoe Script" Tag="Ink Free,KaiTi,Segoe Script" />
<ComboBoxItem Content="楷体 (KaiTi)" Tag="KaiTi" FontFamily="KaiTi" />
<ComboBoxItem Content="华文楷体 (STKaiti)" Tag="STKaiti" FontFamily="STKaiti" />
<ComboBoxItem Content="华文行楷 (STXingkai)" Tag="STXingkai" FontFamily="STXingkai" />
<ComboBoxItem Content="仿宋 (FangSong)" Tag="FangSong" FontFamily="FangSong" />
<ComboBoxItem Content="华文仿宋 (STFangsong)" Tag="STFangsong" FontFamily="STFangsong" />
<ComboBoxItem Content="隶书 (LiSu)" Tag="LiSu" FontFamily="LiSu" />
<ComboBoxItem Content="幼圆 (YouYuan)" Tag="YouYuan" FontFamily="YouYuan" />
<ComboBoxItem Content="Ink Free" Tag="Ink Free" FontFamily="Ink Free" />
<ComboBoxItem Content="Segoe Script" Tag="Segoe Script" FontFamily="Segoe Script" />
<ComboBoxItem Content="Segoe Print" Tag="Segoe Print" FontFamily="Segoe Print" />
<ComboBoxItem Content="Comic Sans MS" Tag="Comic Sans MS" FontFamily="Comic Sans MS" />
</ComboBox>
</ui:SettingsCard>
<controls:LabeledSettingsCard x:Name="CardEnableInkToShapeNoFakePressureRectangle"
Header="{i18n:I18n Key=InkRecog_BlockRectFakePressure}"
ShowWhen="{Binding IsOn, ElementName=CardEnableInkToShape}"
d:Visibility="Visible"
Icon="{x:Static ui:SegoeFluentIcons.RectangularClipping}"
SwitchName="ToggleSwitchEnableInkToShapeNoFakePressureRectangle"
Toggled="ToggleSwitchEnableInkToShapeNoFakePressureRectangle_Toggled" />
<controls:LabeledSettingsCard x:Name="CardEnableInkToShapeNoFakePressureTriangle"
Header="{i18n:I18n Key=InkRecog_BlockTriFakePressure}"
ShowWhen="{Binding IsOn, ElementName=CardEnableInkToShape}"
d:Visibility="Visible"
Icon="{x:Static ui:SegoeFluentIcons.IncidentTriangle}"
SwitchName="ToggleSwitchEnableInkToShapeNoFakePressureTriangle"
Toggled="ToggleSwitchEnableInkToShapeNoFakePressureTriangle_Toggled" />
<ui:SettingsExpander Header="形状修正"
Visibility="{Binding IsOn, ElementName=CardEnableInkToShape, Converter={StaticResource BooleanToVisibilityConverter}}"
IsExpanded="{Binding IsOn, ElementName=CardEnableInkToShape, Mode=OneWay}"
d:Visibility="Visible" d:IsExpanded="True">
<ui:SettingsExpander.HeaderIcon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Settings}" />
</ui:SettingsExpander.HeaderIcon>
<ui:SettingsExpander.Items>
<ui:SettingsCard ContentAlignment="Left">
<CheckBox x:Name="ToggleCheckboxEnableInkToShapeTriangle" IsChecked="True"
Content="{i18n:I18n Key=InkRecog_FixTriangle}"
Checked="ToggleCheckboxEnableInkToShapeTriangle_CheckedChanged"
Unchecked="ToggleCheckboxEnableInkToShapeTriangle_CheckedChanged" />
</ui:SettingsCard>
<ui:SettingsCard ContentAlignment="Left">
<CheckBox x:Name="ToggleCheckboxEnableInkToShapeRectangle" IsChecked="True"
Content="{i18n:I18n Key=InkRecog_FixRectangle}"
Checked="ToggleCheckboxEnableInkToShapeRectangle_CheckedChanged"
Unchecked="ToggleCheckboxEnableInkToShapeRectangle_CheckedChanged" />
</ui:SettingsCard>
<ui:SettingsCard ContentAlignment="Left">
<CheckBox x:Name="ToggleCheckboxEnableInkToShapeRounded" IsChecked="True"
Content="{i18n:I18n Key=InkRecog_FixEllipse}"
Checked="ToggleCheckboxEnableInkToShapeRounded_CheckedChanged"
Unchecked="ToggleCheckboxEnableInkToShapeRounded_CheckedChanged" />
</ui:SettingsCard>
</ui:SettingsExpander.Items>
</ui:SettingsExpander>
<ui:SettingsExpander x:Name="ExpanderAutoStraightenLine"
Header="{i18n:I18n Key=InkRecog_AutoStraightLine}"
d:Visibility="Visible" d:IsExpanded="True">
<ui:SettingsExpander.HeaderIcon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.LineDisplay}" />
</ui:SettingsExpander.HeaderIcon>
<ui:ToggleSwitch x:Name="ToggleSwitchAutoStraightenLine"
OnContent="{DynamicResource Common_On}"
OffContent="{DynamicResource Common_Off}"
Toggled="ToggleSwitchAutoStraightenLine_Toggled" />
<ui:SettingsExpander.Items>
<ui:SettingsCard Header="{i18n:I18n Key=InkRecog_LengthThreshold}">
<ikw:SimpleStackPanel Orientation="Horizontal" Spacing="8">
<TextBlock Text="{Binding Value, ElementName=AutoStraightenLineThresholdSlider, StringFormat={}{0:0}}"
VerticalAlignment="Center" FontFamily="Consolas"/>
<Slider x:Name="AutoStraightenLineThresholdSlider" Width="200" Minimum="30" Maximum="300"
Value="80" TickFrequency="30" IsSnapToTickEnabled="True"
ValueChanged="AutoStraightenLineThresholdSlider_ValueChanged" />
</ikw:SimpleStackPanel>
</ui:SettingsCard>
<ui:SettingsCard Header="{i18n:I18n Key=InkRecog_Sensitivity}">
<ikw:SimpleStackPanel Orientation="Horizontal" Spacing="8">
<TextBlock Text="{Binding Value, ElementName=LineStraightenSensitivitySlider, StringFormat={}{0:F2}}"
VerticalAlignment="Center" FontFamily="Consolas"/>
<Slider x:Name="LineStraightenSensitivitySlider" Width="200" Minimum="0.05" Maximum="2.0"
Value="0.20" TickFrequency="0.05" IsSnapToTickEnabled="True"
ValueChanged="LineStraightenSensitivitySlider_ValueChanged" />
</ikw:SimpleStackPanel>
</ui:SettingsCard>
<ui:SettingsCard Header="{i18n:I18n Key=InkRecog_HighPrecisionStraighten}"
Description="{i18n:I18n Key=InkRecog_HighPrecisionHint}">
<ui:ToggleSwitch x:Name="ToggleSwitchHighPrecisionLineStraighten"
OnContent="{DynamicResource Common_On}"
OffContent="{DynamicResource Common_Off}"
Toggled="ToggleSwitchHighPrecisionLineStraighten_Toggled" />
</ui:SettingsCard>
2026-05-02 16:18:53 +08:00
<ui:SettingsCard Header="{i18n:I18n Key=InkRecog_PauseStraightenLine}"
Description="{i18n:I18n Key=InkRecog_PauseStraightenHint}">
<ui:ToggleSwitch x:Name="ToggleSwitchPauseStraightenLine"
OnContent="{DynamicResource Common_On}"
OffContent="{DynamicResource Common_Off}"
Toggled="ToggleSwitchPauseStraightenLine_Toggled" />
</ui:SettingsCard>
2026-05-02 16:22:27 +08:00
<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>
<ui:SettingsExpander x:Name="ExpanderLineEndpointSnapping"
Header="{i18n:I18n Key=InkRecog_LineEndpointSnapping}"
d:Visibility="Visible" d:IsExpanded="True">
<ui:SettingsExpander.HeaderIcon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Link}" />
</ui:SettingsExpander.HeaderIcon>
<ui:ToggleSwitch x:Name="ToggleSwitchLineEndpointSnapping"
OnContent="{DynamicResource Common_On}"
OffContent="{DynamicResource Common_Off}"
Toggled="ToggleSwitchLineEndpointSnapping_Toggled" />
<ui:SettingsExpander.Items>
<ui:SettingsCard Header="{i18n:I18n Key=InkRecog_SnappingDistance}"
Description="{i18n:I18n Key=InkRecog_LineEndpointSnappingHint}">
<ikw:SimpleStackPanel Orientation="Horizontal" Spacing="8">
<TextBlock Text="{Binding Value, ElementName=LineEndpointSnappingThresholdSlider, StringFormat={}{0:0}}"
VerticalAlignment="Center" FontFamily="Consolas"/>
<Slider x:Name="LineEndpointSnappingThresholdSlider" Width="200" Minimum="5" Maximum="50"
Value="15" TickFrequency="5" IsSnapToTickEnabled="True"
ValueChanged="LineEndpointSnappingThresholdSlider_ValueChanged" />
</ikw:SimpleStackPanel>
</ui:SettingsCard>
</ui:SettingsExpander.Items>
</ui:SettingsExpander>
<Rectangle Height="48" />
</ikw:SimpleStackPanel>
</Grid>
</Grid>
</ScrollViewer>
</ui:Page>