在Silverlight2 Beta2中实现手写功能

想象一下我们在纸上写字的过程,我们需要一张纸和一只笔,然后我们下笔开始写第一字的头一个笔 画,运笔的过程中我们可以根据力度来控制笔画线条的轻重,最后收笔。然后写下一个笔画......。

在Silverlight2中这张纸就是InkPresenter控件,InkPresenter控件作为一组笔画(Stroke)的容器用 来现实墨迹,Ink 引用的是笔、触摸屏和鼠标输入的笔迹或者画的内容。Silverlight 中的 Ink 由 StrokeCollection对象构成,StrokeCollection对象由不同的Stroke对象组成。每个Stroke对应一个笔的 按下、移动和抬起序列。Stroke可以是一个点、一条直线甚至一条曲线。每个Stroke 由一个 StylusPointCollection对象组成,它又有不同的StylusPoint组成。当笔与数字转换器接触并移动的时候 ,StylusPoint 对象是一个集合。我们可以通过该对象的DrawingAttributes属性来设置颜色,宽度,轮 廓颜色等。

下图说明InkPresenter的结构:

InkPresenter不支持在该控件内来使用Stroke,StrokeCollection标记。你只能通过编程的方式来控 制。下面就来简单实现一个例子来说明。InkPresenter控件中比较关键的事件为MouseLeftButtonDown, MouseMove,MouseLeftButtonUp,当InkPresenter接收到MouseLeftButtonDown事件,你需要创建一个新 的Stroke在内存中,并且将其加入到StrokeCollection中,当MouseMove的时候我们将StylusPoints到 Stroke中。MouseLeftButtonUp事件中结束Stroke。我们创建一个Silverlight项目,在page.xaml中添加 如下代码:

<UserControl x:Class="SilverlightApplication2.Page"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Width="400" Height="300">
  <Grid x:Name="LayoutRoot" Background="White">
     <Rectangle x:Name="inkBorder" Width="346" Height="234" Stroke="#FF000000"
     Canvas.Top="25" Canvas.Left="25" RadiusX="25" RadiusY="25"/>
    <InkPresenter x:Name="inkP" Width="344" Height="232" Canvas.Left="25" Canvas.Top="34"
     MouseLeftButtonDown="inkP_MouseLeftButtonDown" MouseLeftButtonUp="inkP_MouseLeftButtonUp"
     MouseMove="inkP_MouseMove" Background="LightBlue">
    </InkPresenter>
   </Grid>
</UserControl>

时间: 2024-09-12 16:46:03

在Silverlight2 Beta2中实现手写功能的相关文章

如何在印象笔记中使用手写功能

  一.下载并打开手机版印象笔记,登录后在左侧菜单栏中点击"新建笔记"创建一个空白笔记; 二.找到上方菜单栏的"添加附件"图标,点击并在下拉菜单中找到"手写"功能; 三.开启手写功能之后,上方菜单栏中会出现钢笔图案的"手写"功能图标; 四.之后就可以开始使用菜单栏上出现的"画笔"和"橡皮擦"进项手写了,另外用两指按住屏幕可以拖动印象笔记中的稿纸; 五.如果稿纸不足可以通过点击屏幕中的&q

三星GALAXY Note 4手写功能曝光 隔空解锁

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 三星GALAXY Note系列不仅开创了大屏智能手机时代,而且独有的S Pen手写功能无疑也是该系列的拿手绝技.而现在,又有网友在微博上爆料称,手写功能会是GALAXY Note 4的一个重大升级,三星将首次使用超声波传感器取代数位转换识别,其识别精度甚至可以让用户随空撩写几画便能够实现解锁功能. 配超声波传感器 众所周知,三星GALAXY

讯飞输入法电脑版手写功能怎么用?

  讯飞输入法电脑版手写功能怎么用?            点击状态栏上的手写图标开启手写面板(快捷键:F4),如下图所示: 讯飞输入法 如您的电脑没有触摸板,则只能进入鼠标手写模式,界面示意如下: 讯飞输入法 当讯飞输入法检测到您的触摸板可以使用时,会默认开启触摸板手写. 需要注意的是,触摸板手写功能开启后,会导致您无法通过触摸板移动鼠标的光标,可以通过ESC按键退出触摸板手写功能. 另外,讯飞输入法PC版还支持连续手写功能,能极大的提高您的手写输入速度. 输入法教程 影视制作教程 YY教程

在Word中整理笔记页中的手写内容的方法

在Word中整理笔记页中的手写内容的方法   图1 OneNote中的手写内容 在OneNote 2007中,打开需要导入到Word中的笔记页,然后,执行菜单栏中的[文件]|[发送至]|[Microsoft Office Word]命令(如图2所示),即可将手写内容转换为标准的文本并发送到Word中,这样就可以对其进行相关排版.打印等操作了,如图3所示. 图2 执行菜单栏中的[文件]|[发送至]|[Microsoft Office Word]命令

java-mybatis generator 后不要覆盖原来的mapper文件中自己手写的部分。

问题描述 mybatis generator 后不要覆盖原来的mapper文件中自己手写的部分. 在使用mybatis 自动生成mapper文件已经java文件过程中发现了一个不易使用的地方.生成的mapper文件可能不能满足我们具体的业务需求,比方说我需要查询一张表前1000条的数据, 我只需要修改mapper文件中的查询方法的最后加上一句limit 11000 就可以了,但是如果这个表的字段发生变化后比如有新增字段,需要我们重新生成一下mapper 文件 就会把原来我们手写的那句limit

百度输入法手写功能怎么用

  1:在这里手写可以直接写入,也可以当另一个功能,就是查拼音.设置--手写.这里如果是第一次用的话,需要下载这插件. 2:这里写入,左键双击:上屏首选.右键单击:退回一笔.还能在右上角看到这个字的拼音.

Mac上如何在PDF中添加手写签名?

  在Mac电脑上如何给PDF文件添加上自己的手写签名?从Mac OS X Lion之后,系统自带的"预览"功能便可以简单几步得为你的PDF文件添加手写签名.下面小编给大家介绍下具体操作步骤: 1.找一张白纸(没有任何花纹)并签上你的名字. 2.打开预览,选择偏好设置 3.偏好设置顶端最后一个"签名",选中点击创建签名 4.这时候会弹出一个相机窗口,将你的签名对准相机,相机预览窗口会有一根蓝色的线,注意,你所有的书写都必须在蓝线之上.这时右侧会出现你的签名预览.调整

iOS开发中一些手写控件及其相关属性的使用_IOS

手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: 复制代码 代码如下: [btn addTarget:s

ASP.NET 中关于手写分页的代码

问题描述 求大神详解ASP中分页的知识,用DataList来显示,有点搞不清楚!看着蛋疼死了,特别是尾页做的想死了!! 解决方案 解决方案二:1.http://www.webdiyer.com/aspnetpagerdemo/pageddatalist/default.aspx2.http://blog.csdn.net/chinacsharper/article/details/9095387解决方案三:我用的是HTML+AJAX+.NET:分享我的经验:1:将要分页的表的所有数据总数查出来,