Add settings for Ink Width and add keyboard support

This commit is contained in:
XY Wang 2021-09-25 11:36:17 +08:00
parent e4a5dc8d57
commit 45e448ae6f
3 changed files with 96 additions and 31 deletions

View File

@ -26,7 +26,7 @@
CanExecute="CommandBinding_CanExecute"
Executed="KeyExit"/>
</Window.CommandBindings>
<Grid x:Name="Main_Grid" Background="#01FFFFFF">
<Grid x:Name="Main_Grid" Background="#01FFFFFF" PreviewKeyDown="Main_Grid_PreviewKeyDown">
<Grid Name="GridBackgroundCoverHolder">
<Grid Name="GridBackgroundCover" Visibility="Hidden" Background="#FFF2F2F2"/>
</Grid>
@ -68,6 +68,23 @@
<ui:ToggleSwitch Name="ToggleSwitchShowCanvasAtNewSlideShow" Header="开始放映时自动显示画板" IsOn="True" FontFamily="Microsoft YaHei UI" OnContent="开" OffContent="关" Toggled="ToggleSwitchShowCanvasAtNewSlideShow_Toggled"/>
</ui:SimpleStackPanel>
</GroupBox>
<GroupBox Header="画板">
<ui:SimpleStackPanel Spacing="12">
<StackPanel Orientation="Horizontal">
<Slider x:Name="InkWidthSlider"
HorizontalAlignment="Left"
Minimum="1" Maximum="20"
Width="330" FontFamily="Microsoft YaHei UI"
ui:ControlHelper.Header="画笔粗细"
IsSnapToTickEnabled="True" Value="5"
TickFrequency="1" TickPlacement="Both"
ValueChanged="InkWidthSlider_ValueChanged"/>
<TextBlock Text="{Binding Value, ElementName=InkWidthSlider, Mode=OneWay}"
VerticalAlignment="Bottom" Margin="10,0,0,8"
FontSize="14"/>
</StackPanel>
</ui:SimpleStackPanel>
</GroupBox>
<GroupBox Header="启动">
<ui:SimpleStackPanel Spacing="12">
<ui:ToggleSwitch Name="ToggleSwitchAutoHideCanvas" Header="自动隐藏画板" FontFamily="Microsoft YaHei UI" OnContent="开" OffContent="关" Toggled="ToggleSwitchAutoHideCanvas_Toggled"/>

View File

@ -62,25 +62,28 @@ namespace Ink_Canvas
drawingAttributes = inkCanvas.DefaultDrawingAttributes;
drawingAttributes.Color = Ink_DefaultColor;
if (File.Exists("Thickness.ini"))
{
try
{
double d = double.Parse(File.ReadAllText("Thickness.ini"));
drawingAttributes.Height = d;
drawingAttributes.Width = d;
}
catch
{
drawingAttributes.Height = 2.5;
drawingAttributes.Width = 2.5;
}
}
else
{
drawingAttributes.Height = 2.5;
drawingAttributes.Width = 2.5;
}
drawingAttributes.Height = 2.5;
drawingAttributes.Width = 2.5;
//if (File.Exists("Thickness.ini"))
//{
// try
// {
// double d = double.Parse(File.ReadAllText("Thickness.ini"));
// drawingAttributes.Height = d;
// drawingAttributes.Width = d;
// }
// catch
// {
// drawingAttributes.Height = 2.5;
// drawingAttributes.Width = 2.5;
// }
//}
//else
//{
// drawingAttributes.Height = 2.5;
// drawingAttributes.Width = 2.5;
//}
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
inkCanvas.Gesture += InkCanvas_Gesture;
@ -222,7 +225,7 @@ namespace Ink_Canvas
new Thread(new ThreadStart(() => {
try
{
string response = GetWebClient("http://e.wxriw.cn:1957");
string response = GetWebClient("http://ink.wxriw.cn:1957");
if (response.Contains("Special Version"))
{
isAutoUpdateEnabled = true;
@ -329,6 +332,14 @@ namespace Ink_Canvas
loadPenCanvas();
if (Settings.Canvas != null)
{
drawingAttributes.Height = Settings.Canvas.InkWidth;
drawingAttributes.Width = Settings.Canvas.InkWidth;
InkWidthSlider.Value = Settings.Canvas.InkWidth * 2;
}
Version version = Assembly.GetExecutingAssembly().GetName().Version;
TextBlockVersion.Text = version.ToString();
@ -804,6 +815,20 @@ namespace Ink_Canvas
});
}
private void Main_Grid_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (StackPanelPPTControls.Visibility != Visibility.Visible) return;
if (e.Key == Key.Down || e.Key == Key.PageDown || e.Key == Key.Right)
{
BtnPPTSlidesDown_Click(BtnPPTSlidesDown, null);
}
if (e.Key == Key.Up || e.Key == Key.PageUp || e.Key == Key.Left)
{
BtnPPTSlidesUp_Click(BtnPPTSlidesUp, null);
}
}
int previousSlideID = 0;
MemoryStream[] memoryStreams = new MemoryStream[50];
@ -885,19 +910,18 @@ namespace Ink_Canvas
private void BtnPPTSlideShow_Click(object sender, RoutedEventArgs e)
{
try
{
new Thread(new ThreadStart(() => {
//presentation.SlideShowSettings.StartingSlide = 1;// pptApplication.ActiveWindow.Selection.SlideRange.SlideNumber;
//presentation.SlideShowSettings.EndingSlide = 1;
presentation.SlideShowSettings.Run();
})).Start();
if (currentMode == 1)
new Thread(new ThreadStart(() => {
try
{
BtnSwitch_Click(BtnSwitch, e);
presentation.SlideShowSettings.Run();
}
catch { }
})).Start();
if (currentMode == 1)
{
BtnSwitch_Click(BtnSwitch, e);
}
catch { }
}
private void BtnPPTSlideShowEnd_Click(object sender, RoutedEventArgs e)
@ -1056,6 +1080,22 @@ namespace Ink_Canvas
#endregion
#region Canvas
private void InkWidthSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (!isLoaded) return;
drawingAttributes.Height = ((Slider)sender).Value / 2;
drawingAttributes.Width = ((Slider)sender).Value / 2;
Settings.Canvas.InkWidth = ((Slider)sender).Value / 2;
SaveSettingsToFile();
}
#endregion
private void SaveSettingsToFile()
{
string text = JsonConvert.SerializeObject(Settings, Formatting.Indented);

View File

@ -11,6 +11,8 @@ namespace Ink_Canvas
{
[JsonProperty("behavior")]
public Behavior Behavior { get; set; } = new Behavior();
[JsonProperty("canvas")]
public Canvas Canvas { get; set; } = new Canvas();
[JsonProperty("startup")]
public Startup Startup { get; set; } = new Startup();
[JsonProperty("appearance")]
@ -25,6 +27,12 @@ namespace Ink_Canvas
public bool IsShowCanvasAtNewSlideShow { get; set; } = true;
}
public class Canvas
{
[JsonProperty("inkWidth")]
public double InkWidth { get; set; } = 2.5;
}
public class Startup
{
[JsonProperty("isAutoHideCanvas")]