您现在的位置是:主页 > news > 自学网站建设哪个网站好/自建网站平台有哪些

自学网站建设哪个网站好/自建网站平台有哪些

admin2025/4/24 2:54:49news

简介自学网站建设哪个网站好,自建网站平台有哪些,农机网站建设目标,青岛专用网站制作原文:背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别[源码下载] 背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别作者:webabcd介绍背水一战 Windows 10 之 控件…

自学网站建设哪个网站好,自建网站平台有哪些,农机网站建设目标,青岛专用网站制作原文:背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别[源码下载] 背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别作者:webabcd介绍背水一战 Windows 10 之 控件…
原文:背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别

[源码下载]


背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别



作者:webabcd


介绍
背水一战 Windows 10 之 控件(媒体类)

  • InkCanvas 保存和加载
  • InkCanvas 手写识别



示例
1、演示 InkCanvas 涂鸦板的保存和加载
Controls/MediaControl/InkCanvasDemo3.xaml

<Pagex:Class="Windows10.Controls.MediaControl.InkCanvasDemo3"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="using:Windows10.Controls.MediaControl"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"><Grid Background="Transparent"><StackPanel Margin="10 0 10 10"><Border Background="White" Width="480" Height="320" Margin="5" HorizontalAlignment="Left"><!--InkCanvas - 涂鸦板控件--><InkCanvas Name="inkCanvas" /></Border><Button Name="save" Content="保存到文件" Margin="5" Click="save_Click" /><Button Name="load" Content="从文件读取" Margin="5" Click="load_Click" /></StackPanel></Grid>
</Page>

Controls/MediaControl/InkCanvasDemo3.xaml.cs

/** InkCanvas - 涂鸦板控件(继承自 FrameworkElement, 请参见 /Controls/BaseControl/FrameworkElementDemo/)*     InkPresenter - 获取 InkPresenter 对象*        * InkPresenter - 涂鸦板*     StrokeContainer - 返回 InkStrokeContainer 类型的对象*     * InkStrokeContainer - 用于管理涂鸦*     IAsyncOperationWithProgress<UInt32, UInt32> SaveAsync(IOutputStream outputStream) - 保存涂鸦数据*     IAsyncActionWithProgress<UInt64> LoadAsync(IInputStream inputStream) - 加载涂鸦数据*/using System;
using System.Collections.Generic;
using Windows.Foundation;
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI;
using Windows.UI.Core;
using Windows.UI.Input.Inking;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;namespace Windows10.Controls.MediaControl
{public sealed partial class InkCanvasDemo3 : Page{public InkCanvasDemo3(){this.InitializeComponent();inkCanvas.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Pen | CoreInputDeviceTypes.Touch;InkDrawingAttributes drawingAttributes = inkCanvas.InkPresenter.CopyDefaultDrawingAttributes();drawingAttributes.IgnorePressure = true;drawingAttributes.Color = Colors.Red;drawingAttributes.Size = new Size(4, 4);inkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes);}private async void save_Click(object sender, RoutedEventArgs e){if (inkCanvas.InkPresenter.StrokeContainer.GetStrokes().Count == 0)return;// 用于保存涂鸦数据IRandomAccessStream stream = new InMemoryRandomAccessStream();await inkCanvas.InkPresenter.StrokeContainer.SaveAsync(stream);// 文件保存对话框var picker = new FileSavePicker{SuggestedStartLocation = PickerLocationId.DocumentsLibrary};picker.FileTypeChoices.Add("ink files", new List<string>() { ".ink" });// 弹出文件保存对话框var file = await picker.PickSaveFileAsync();if (file == null)return;// 在调用 CompleteUpdatesAsync 之前,阻止对文件的更新
            CachedFileManager.DeferUpdates(file);// Stream 转 byte[]DataReader reader = new DataReader(stream.GetInputStreamAt(0));await reader.LoadAsync((uint)stream.Size);byte[] bytes = new byte[stream.Size];reader.ReadBytes(bytes);// 写入文件await FileIO.WriteBytesAsync(file, bytes);// 保存文件await CachedFileManager.CompleteUpdatesAsync(file);}private async void load_Click(object sender, RoutedEventArgs e){// 文件打开对话框var picker = new FileOpenPicker{SuggestedStartLocation = PickerLocationId.DocumentsLibrary};picker.FileTypeFilter.Add(".ink");// 弹出文件打开对话框var pickedFile = await picker.PickSingleFileAsync();if (pickedFile != null){// 读取涂鸦数据IRandomAccessStreamWithContentType stream = await pickedFile.OpenReadAsync();// 加载指定的涂鸦数据await inkCanvas.InkPresenter.StrokeContainer.LoadAsync(stream);}}}
}


2、演示 InkCanvas 涂鸦板的手写识别
Controls/MediaControl/InkCanvasDemo4.xaml

<Pagex:Class="Windows10.Controls.MediaControl.InkCanvasDemo4"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="using:Windows10.Controls.MediaControl"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"><Grid Background="Transparent"><StackPanel Margin="10 0 10 10"><Border Background="White" Width="480" Height="320" Margin="5" HorizontalAlignment="Left"><!--InkCanvas - 涂鸦板控件--><InkCanvas Name="inkCanvas" /></Border><Button Name="recognize" Content="手写识别" Margin="5" Click="recognize_Click" /><TextBlock Name="lblMsg" Margin="5" /></StackPanel></Grid>
</Page>

Controls/MediaControl/InkCanvasDemo4.xaml.cs

/** InkCanvas - 涂鸦板控件(继承自 FrameworkElement, 请参见 /Controls/BaseControl/FrameworkElementDemo/)*     InkPresenter - 获取 InkPresenter 对象*        * InkRecognizerContainer - 用于管理手写识别*     GetRecognizers() - 获取 InkRecognizer 对象集合*     SetDefaultRecognizer(InkRecognizer recognizer) - 将指定的 InkRecognizer 设置为默认的手写识别器*     RecognizeAsync(InkStrokeContainer strokeCollection, InkRecognitionTarget recognitionTarget) - 识别,返回 InkRecognitionResult 对象集合*         InkStrokeContainer strokeCollection - 需要识别的 InkStrokeContainer 对象*         InkRecognitionTarget recognitionTarget - 需要识别的目标*             All - 识别全部涂鸦数据*             Selected - 识别被选中的涂鸦数据*             Recent - 识别 InkStroke 的 Recognized 为 false 的涂鸦数据*             * InkRecognizer - 手写识别器*     Name - 手写识别器的名字(只读)* * InkRecognitionResult - 手写识别结果*     BoundingRect - 获取用于识别的涂鸦的 Rect 区域*     GetStrokes() - 获取用于识别的 InkStroke 对象集合*     GetTextCandidates() - 获取识别结果,这是一个候选结果列表* * InkPresenter - 涂鸦板*     StrokeContainer - 返回 InkStrokeContainer 类型的对象*     * InkStrokeContainer - 用于管理涂鸦*     UpdateRecognitionResults(IReadOnlyList<InkRecognitionResult> recognitionResults) - 将指定的识别结果通知给 InkStrokeContainer(此时 InkStrokeContainer 中被识别的 InkStroke 的 Recognized 将被标记为 true)*         如果使用的是 InkRecognitionTarget.All 则 InkStrokeContainer 中的所有的 InkStroke 的 Recognized 将被标记为 true*         如果使用的是 InkRecognitionTarget.Selected 则 InkStrokeContainer 中的被选中的 InkStroke 的 Recognized 将被标记为 true*     GetRecognitionResults() - 返回之前通过 UpdateRecognitionResults 方法设置的数据*     * InkStroke - 涂鸦对象(这是一次的涂鸦对象,即鼠标按下后移动然后再抬起后所绘制出的涂鸦)*     Recognized - 此 InkStroke 是否被识别了*     Selected - 此 InkStroke 是否被选中了*/using System;
using System.Collections.Generic;
using System.Diagnostics;
using Windows.Foundation;
using Windows.UI;
using Windows.UI.Core;
using Windows.UI.Input.Inking;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;namespace Windows10.Controls.MediaControl
{public sealed partial class InkCanvasDemo4 : Page{public InkCanvasDemo4(){this.InitializeComponent();inkCanvas.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Pen | CoreInputDeviceTypes.Touch;InkDrawingAttributes drawingAttributes = inkCanvas.InkPresenter.CopyDefaultDrawingAttributes();drawingAttributes.IgnorePressure = true;drawingAttributes.Color = Colors.Red;drawingAttributes.Size = new Size(4, 4);inkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes);}private async void recognize_Click(object sender, RoutedEventArgs e){if (inkCanvas.InkPresenter.StrokeContainer.GetStrokes().Count == 0)return;InkRecognizerContainer container = new InkRecognizerContainer();lblMsg.Text = "手写识别器: ";lblMsg.Text += Environment.NewLine;// 获取当前支持的手写识别器列表,如果有多个的话可以通过 SetDefaultRecognizer 方法来指定默认的手写识别器IReadOnlyList<InkRecognizer> recognizers = container.GetRecognizers();foreach (InkRecognizer ir in recognizers){lblMsg.Text += ir.Name;lblMsg.Text += Environment.NewLine;}lblMsg.Text += Environment.NewLine;lblMsg.Text += "识别结果: ";lblMsg.Text += Environment.NewLine;IReadOnlyList<InkRecognitionResult> result = await container.RecognizeAsync(inkCanvas.InkPresenter.StrokeContainer, InkRecognitionTarget.All);foreach (string textCandidate in result[0].GetTextCandidates()){lblMsg.Text += textCandidate;lblMsg.Text += Environment.NewLine;}// 将识别结果通知给 InkStrokeContainer
            inkCanvas.InkPresenter.StrokeContainer.UpdateRecognitionResults(result);// 识别结果通知给 InkStrokeContainer 后,被识别的 InkStroke 的 Recognized 将被标记为 true// 如果在识别的时候使用的是 InkRecognitionTarget.All 则所有的 InkStroke 的 Recognized 将被标记为 true// 如果在识别的时候使用的是 InkRecognitionTarget.Selected 则被选中的 InkStroke 的 Recognized 将被标记为 trueIReadOnlyList<InkStroke> strokes = inkCanvas.InkPresenter.StrokeContainer.GetStrokes();foreach (InkStroke stroke in strokes){Debug.WriteLine("stroke.Recognized: " + stroke.Recognized);}// 这个获取到的就是之前通过 InkStrokeContainer 方式设置的数据result = inkCanvas.InkPresenter.StrokeContainer.GetRecognitionResults();}}
}



OK
[源码下载]