C# WPF中inkCanvas简单实用
来源:互联网 发布:天刀吴彦祖捏脸数据 编辑:程序博客网 时间:2024/06/14 05:35
最近有点时间就想看看wpf然后在网上看了一下水墨画的东西和例子,然后自己根据自己的理解就用inkCanvas控件做了一个小软件,可以供大家学习参考。
话不多说,wpf其实就两点,玩过winform的都比较熟悉,它就是winform的升级版吧。所以还是差不多的,先要设计界面。然后添加功能。只是他的界面是一个XAML文件。
我做的是一个简单的画板。
实现了文件有新建,打开,保存,保存和打开的都是isf格式,也可以保存成图片格式。
编辑有:选择,复制,粘贴,剪贴,清空等功能,其实很简单,几句话。
工具中有画笔和橡皮两个,画笔有粗细,颜色等选择,橡皮有大小功能。
如图:
效果:红色粗笔效果,可以选择其中一笔进行放大缩小,移动变换,p字母效果
部分源代码:
保存功能: private void MenuItem_Click(object sender, RoutedEventArgs e)
{
if (this.inkCanvas1.Strokes.Count != 0)
{
MessageBoxResult Message = MessageBox.Show("写字板已修改是否保存?", "是否保存", MessageBoxButton.YesNoCancel);
//保存,新建
if (Message == MessageBoxResult.Yes)
{
SaveFileDialog save = new SaveFileDialog();
save.FileName = " ";
save.Filter = "文件|*.isf";
if (save.ShowDialog() == true)
{
FileStream f = File.Open(save.FileName, FileMode.Create, FileAccess.Write);
this.inkCanvas1.Strokes.Save(f);
f.Close();
}
this.inkCanvas1.Strokes = new System.Windows.Ink.StrokeCollection();
}
if (Message == MessageBoxResult.No)
this.inkCanvas1.Strokes = new System.Windows.Ink.StrokeCollection();
}
else
this.inkCanvas1.Strokes = new System.Windows.Ink.StrokeCollection();
}
打开文件功能:
OpenFileDialog open = new OpenFileDialog();
open.Title = "选择文件";
open.Filter = "文件|*.isf";
if (this.inkCanvas1.Strokes.Count != 0)
{
MessageBoxResult Message = MessageBox.Show("写字板已修改是否保存?", "是否保存", MessageBoxButton.YesNo);
//保存,新建
if (Message == MessageBoxResult.Yes)
{
SaveFileDialog save = new SaveFileDialog();
save.FileName = " ";
save.Filter = "文件|*.isf";
if (save.ShowDialog() == true)
{
FileStream f = File.Open(save.FileName, FileMode.Create, FileAccess.Write);
this.inkCanvas1.Strokes.Save(f);
f.Close();
}
this.inkCanvas1.Strokes = new System.Windows.Ink.StrokeCollection();
}
if (Message == MessageBoxResult.No)
this.inkCanvas1.Strokes = new System.Windows.Ink.StrokeCollection();
}
else
if (open.ShowDialog() == true)
{
FileStream f = File.Open(open.FileName, FileMode.Open, FileAccess.Read);
this.inkCanvas1.Strokes = new System.Windows.Ink.StrokeCollection(f);
f.Close();
}
画笔颜色功能:
System.Windows.Forms.ColorDialog color = new System.Windows.Forms.ColorDialog();
//color.ShowDialog();
if (color.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.inkCanvas1.DefaultDrawingAttributes.Color = System.Windows.Media.Color.FromArgb(color.Color.A,color.Color.R,color.Color.G,color.Color.B);
this.inkCanvas1.DefaultDrawingAttributes.FitToCurve = true;
}
如果有需要学习的请到我的空间下载源码和软件,供大家学习。哈哈!本人新手,请勿见笑。
- C# WPF中inkCanvas简单实用
- WPF中InkCanvas(墨水面板)用法
- WPF中InkCanvas(墨水面板)用法
- WPF中InkCanvas(墨水面板)用法
- WPF中InkCanvas(墨水面板)用法
- WPF InkCanvas画布
- wpf inkcanvas 多点绘画
- WPF InkCanvas 基础使用教程
- wpf inkcanvas customink 毛笔效果
- c# 关于InkCanvas面板,撤销的操作
- 使用WPF的自定义InkCanvas实现毛笔效果
- WPF 4.5和C#(3.4)——布局(Canvas,Inkcanvas)
- wpf 中的Canvas与Inkcanvas的属性说明
- WPF InkCanvas MouseDown触发 MouseUp不触发问题
- C#反射(Reflection)简单实用
- C#中 Oracle实用随笔
- IOS中git简单实用
- C#读写注册表(简单实用易懂)
- 传智学习日志篇:十一
- xdebug_php_eclipse
- Spring Security教程外篇(2)---- 乱起八糟的一下东西,自己备用
- CentOS6 图形界面(gnome)安装
- 网络摘抄-davinci通信以及消息队列机制等的简述
- C# WPF中inkCanvas简单实用
- SVG元素缩放的问题
- 神鼎飞丹砂个肺结核
- Android4.0 修改个性化鼠标图标
- 如何配置DAVINCI内存
- Drawable转换为Bitmap两种方法
- cocos2dx中的颜色混合
- Log4j 日志级别
- ARM寄存器介绍