Add Multi-Touch Ink Canvas support and bug fix
This commit is contained in:
parent
6291a5d933
commit
cc55ce0377
3
.gitignore
vendored
3
.gitignore
vendored
@ -3,6 +3,9 @@
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
# Other Projects
|
||||
Other Projects/
|
||||
|
||||
# History Versions
|
||||
History Versions/
|
||||
|
||||
|
93
Ink Canvas/Helpers/MultiTouchInput.cs
Normal file
93
Ink Canvas/Helpers/MultiTouchInput.cs
Normal file
@ -0,0 +1,93 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Ink;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace Ink_Canvas.Helpers
|
||||
{
|
||||
public class VisualCanvas : FrameworkElement
|
||||
{
|
||||
protected override Visual GetVisualChild(int index)
|
||||
{
|
||||
return Visual;
|
||||
}
|
||||
|
||||
protected override int VisualChildrenCount => 1;
|
||||
|
||||
public VisualCanvas(DrawingVisual visual)
|
||||
{
|
||||
Visual = visual;
|
||||
AddVisualChild(visual);
|
||||
}
|
||||
|
||||
public DrawingVisual Visual { get; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用于显示笔迹的类
|
||||
/// </summary>
|
||||
public class StrokeVisual : DrawingVisual
|
||||
{
|
||||
/// <summary>
|
||||
/// 创建显示笔迹的类
|
||||
/// </summary>
|
||||
public StrokeVisual() : this(new DrawingAttributes()
|
||||
{
|
||||
Color = Colors.Red,
|
||||
//FitToCurve = true,
|
||||
Width = 3,
|
||||
Height = 3
|
||||
})
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建显示笔迹的类
|
||||
/// </summary>
|
||||
/// <param name="drawingAttributes"></param>
|
||||
public StrokeVisual(DrawingAttributes drawingAttributes)
|
||||
{
|
||||
_drawingAttributes = drawingAttributes;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置或获取显示的笔迹
|
||||
/// </summary>
|
||||
public Stroke Stroke { set; get; }
|
||||
|
||||
/// <summary>
|
||||
/// 在笔迹中添加点
|
||||
/// </summary>
|
||||
/// <param name="point"></param>
|
||||
public void Add(StylusPoint point)
|
||||
{
|
||||
if (Stroke == null)
|
||||
{
|
||||
var collection = new StylusPointCollection { point };
|
||||
Stroke = new Stroke(collection) { DrawingAttributes = _drawingAttributes };
|
||||
}
|
||||
else
|
||||
{
|
||||
Stroke.StylusPoints.Add(point);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重新画出笔迹
|
||||
/// </summary>
|
||||
public void Redraw()
|
||||
{
|
||||
using (var dc = RenderOpen())
|
||||
{
|
||||
Stroke.Draw(dc);
|
||||
}
|
||||
}
|
||||
|
||||
private readonly DrawingAttributes _drawingAttributes;
|
||||
}
|
||||
}
|
@ -128,6 +128,7 @@
|
||||
</Compile>
|
||||
<Compile Include="Helpers\InkRecognizeHelper.cs" />
|
||||
<Compile Include="Helpers\LogHelper.cs" />
|
||||
<Compile Include="Helpers\MultiTouchInput.cs" />
|
||||
<Compile Include="NamesInputWindow.xaml.cs">
|
||||
<DependentUpon>NamesInputWindow.xaml</DependentUpon>
|
||||
</Compile>
|
||||
|
@ -29,7 +29,7 @@
|
||||
</Window.CommandBindings>
|
||||
<Grid x:Name="Main_Grid" Background="#01FFFFFF" PreviewKeyDown="Main_Grid_PreviewKeyDown">
|
||||
<Grid Name="GridBackgroundCoverHolder">
|
||||
<Grid Name="GridBackgroundCover" Visibility="Hidden" Background="#1F1F1F"/>
|
||||
<Grid Name="GridBackgroundCover" Visibility="Visible" Background="#1F1F1F"/>
|
||||
</Grid>
|
||||
<Canvas Name="Canvas"/>
|
||||
<Label Name="Label" Visibility="Collapsed" Content="0"/>
|
||||
@ -86,11 +86,47 @@
|
||||
</Grid>
|
||||
</Grid>
|
||||
<Grid Visibility="{Binding ElementName=GridBackgroundCoverHolder, Path=Visibility}">
|
||||
<Viewbox Visibility="{Binding ElementName=GridBackgroundCover, Path=Visibility}" Opacity="0.7" Margin="10" Height="50" HorizontalAlignment="Right" VerticalAlignment="Bottom">
|
||||
<ui:SimpleStackPanel Orientation="Horizontal" Spacing="5">
|
||||
<Border Width="36" Height="36" MouseUp="BtnWhiteBoardAdd_Click" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Viewbox Margin="8">
|
||||
<ui:SymbolIcon Symbol="Add" Foreground="#FF666666" />
|
||||
</Viewbox>
|
||||
</Border>
|
||||
<Border Width="36" MouseUp="BtnWhiteBoardSwitchPrevious_Click" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6">
|
||||
<Image Visibility="Collapsed" Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalPreviousSlideSelected}"/>
|
||||
<Image Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalPreviousSlideNormal}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border Height="36" CornerRadius="2" Margin="0,0">
|
||||
<TextBlock Text="{Binding ElementName=TextBlockWhiteBoardIndexInfo, Path=Text}"
|
||||
Foreground="White"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Center"
|
||||
FontFamily="Microsoft YaHei UI" FontSize="12"/>
|
||||
</Border>
|
||||
<Border Width="36" MouseUp="BtnWhiteBoardSwitchNext_Click" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6">
|
||||
<Image Visibility="Collapsed" Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalNextSlideSelected}"/>
|
||||
<Image Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalNextSlideNormal}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</ui:SimpleStackPanel>
|
||||
</Viewbox>
|
||||
<Viewbox Visibility="{Binding ElementName=GridBackgroundCover, Path=Visibility}" Opacity="0.7" Margin="10" Height="50" HorizontalAlignment="Left" VerticalAlignment="Bottom">
|
||||
<ui:SimpleStackPanel Orientation="Horizontal" Spacing="5">
|
||||
<Border Width="36" Height="36" MouseUp="BorderMultiTouchMode_MouseUp" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Viewbox Margin="8">
|
||||
<ui:SymbolIcon Name="SymbolIconMultiTouchMode" Symbol="People" Foreground="#FF666666" />
|
||||
</Viewbox>
|
||||
</Border>
|
||||
</ui:SimpleStackPanel>
|
||||
</Viewbox>
|
||||
<ui:SimpleStackPanel Spacing="10" Orientation="Horizontal"
|
||||
VerticalAlignment="Bottom"
|
||||
HorizontalAlignment="Right"
|
||||
Height="50" Margin="10"
|
||||
Visibility="{Binding ElementName=GridBackgroundCover, Path=Visibility}">
|
||||
Visibility="Collapsed">
|
||||
<Button Name="BtnWhiteBoardAdd" FontFamily="Microsoft YaHei UI"
|
||||
Width="50" Height="48" FontSize="26" Click="BtnWhiteBoardAdd_Click"
|
||||
Foreground="{Binding ElementName=BtnExit, Path=Foreground}"
|
||||
@ -224,6 +260,7 @@
|
||||
<ComboBoxItem Content="模拟笔锋(根据速度计算)" FontFamily="Microsoft YaHei UI"/>
|
||||
<ComboBoxItem Content="无笔锋" FontFamily="Microsoft YaHei UI"/>
|
||||
</ComboBox>
|
||||
<ui:ToggleSwitch Header="手指模式" IsOn="{Binding ElementName=ToggleSwitchModeFinger, Path=IsOn}" FontFamily="Microsoft YaHei UI" OnContent="开" OffContent="关"/>
|
||||
</ui:SimpleStackPanel>
|
||||
</GroupBox>
|
||||
<GroupBox Header="手势">
|
||||
@ -262,6 +299,11 @@
|
||||
</StackPanel>
|
||||
</ui:SimpleStackPanel>
|
||||
</GroupBox>
|
||||
<GroupBox Name="GroupBoxAppearanceNewUI" Header="外观">
|
||||
<ui:SimpleStackPanel Spacing="12">
|
||||
<ui:ToggleSwitch Header="显示“橡皮”按钮" IsOn="{Binding ElementName=ToggleSwitchShowButtonEraser, Path=IsOn}" FontFamily="Microsoft YaHei UI" OnContent="开" OffContent="关"/>
|
||||
</ui:SimpleStackPanel>
|
||||
</GroupBox>
|
||||
<GroupBox Header="高级">
|
||||
<ui:SimpleStackPanel Spacing="12">
|
||||
<TextBlock Text="可在手指触摸画板时显示圆形橡皮或手掌触摸画板时显示的橡皮比
手掌大很多时开启" Foreground="#666666"/>
|
||||
@ -615,14 +657,14 @@
|
||||
<Grid Visibility="{Binding ElementName=StackPanelPPTControls, Path=Visibility}">
|
||||
<Viewbox Name="ViewboxPPTSidesControl" Visibility="{Binding ElementName=StackPanelPPTButtons, Path=Visibility}" Opacity="0.7" Margin="10" Height="50" HorizontalAlignment="Left" VerticalAlignment="Bottom">
|
||||
<ui:SimpleStackPanel Orientation="Horizontal" Spacing="5">
|
||||
<Border Width="36" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6" MouseUp="GridPPTControlPrevious_MouseUp">
|
||||
<Border Width="36" MouseUp="GridPPTControlPrevious_MouseUp" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6">
|
||||
<Image Name="ImagePPTControlPreviousPressed" Visibility="Collapsed" Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalPreviousSlideSelected}"/>
|
||||
<Image Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalPreviousSlideNormal}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border Width="36" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6" MouseUp="GridPPTControlNext_MouseUp">
|
||||
<Border Width="36" MouseUp="GridPPTControlNext_MouseUp" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6">
|
||||
<Image Name="ImagePPTControlNextPressed" Visibility="Collapsed" Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalNextSlideSelected}"/>
|
||||
<Image Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalNextSlideNormal}"/>
|
||||
</Grid>
|
||||
@ -631,13 +673,13 @@
|
||||
</Viewbox>
|
||||
<Viewbox Visibility="{Binding ElementName=StackPanelPPTButtons, Path=Visibility}" Opacity="{Binding ElementName=ViewboxPPTSidesControl, Path=Opacity}" Margin="10" Height="50" HorizontalAlignment="Right" VerticalAlignment="Bottom">
|
||||
<ui:SimpleStackPanel Orientation="Horizontal" Spacing="5">
|
||||
<Border Width="36" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6" MouseUp="GridPPTControlPrevious_MouseUp">
|
||||
<Border Width="36" MouseUp="GridPPTControlPrevious_MouseUp" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6">
|
||||
<Image Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalPreviousSlideNormal}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border Width="36" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6" MouseUp="GridPPTControlNext_MouseUp">
|
||||
<Border Width="36" MouseUp="GridPPTControlNext_MouseUp" Height="36" CornerRadius="5" Background="#9FFFFFFF" BorderThickness="1" BorderBrush="#BF666666">
|
||||
<Grid Margin="6">
|
||||
<Image Source="{DynamicResource ResourceKey=SeewoImageSource.HorizontalNextSlideNormal}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
@ -710,6 +752,18 @@
|
||||
</Viewbox>
|
||||
</Border>
|
||||
</ui:SimpleStackPanel>
|
||||
<Grid Width="20" Height="24" Margin="0,0,-2,0" MouseUp="ImageEraser_MouseUp" Visibility="{Binding ElementName=BtnErase, Path=Visibility}">
|
||||
<Image Margin="-2" Source="{DynamicResource ImageSource.RubberNormal}" RenderTransformOrigin="0.5,0.5">
|
||||
<Image.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform/>
|
||||
<SkewTransform/>
|
||||
<RotateTransform Angle="-45"/>
|
||||
<TranslateTransform/>
|
||||
</TransformGroup>
|
||||
</Image.RenderTransform>
|
||||
</Image>
|
||||
</Grid>
|
||||
<Grid Margin="0,0,0,0" Width="20">
|
||||
<ui:SymbolIcon Symbol="Delete" Foreground="#666666" MouseUp="SymbolIconDelete_MouseUp"/>
|
||||
<Border x:Name="BorderClearInDelete" Visibility="Collapsed" Background="White" BorderBrush="#BF666666" BorderThickness="1"
|
||||
@ -735,7 +789,7 @@
|
||||
</Viewbox>
|
||||
</ui:SimpleStackPanel>
|
||||
<ui:SimpleStackPanel Orientation="{Binding ElementName=StackPanelFloatingBar, Path=Orientation}">
|
||||
<Grid Width="20" Height="24" Margin="2,0,12,2">
|
||||
<Grid Width="20" Height="24" Margin="2,0,12,1">
|
||||
<Image Margin="-8" MouseUp="ImageBlackboard_MouseUp">
|
||||
<Image.Source>
|
||||
<DrawingImage>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -51,5 +51,5 @@ using System.Windows;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("3.0.0.1")]
|
||||
[assembly: AssemblyFileVersion("3.0.0.1")]
|
||||
[assembly: AssemblyVersion("3.0.1.0")]
|
||||
[assembly: AssemblyFileVersion("3.0.1.0")]
|
||||
|
Loading…
Reference in New Issue
Block a user