日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Silverlight撤消重做功能的实现。

發布時間:2025/4/16 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight撤消重做功能的实现。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

想實現類似畫圖工具那樣,重做撤消可以恢復或擦除最后一次的繪圖。

不知道通用的方法是什么,自己琢磨了這樣的方法,請高手指教。

大氣象 <UserControl?x:Class="SilverlightUndo.MainPage"
????xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"?
????xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
????xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"?xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"?
????mc:Ignorable
="d"?d:DesignWidth="640"?d:DesignHeight="480">
??
<Grid?x:Name="LayoutRoot">
????????
<Grid.RowDefinitions>
????????????
<RowDefinition?Height="50"></RowDefinition>
????????????
<RowDefinition?Height="*"></RowDefinition>
????????
</Grid.RowDefinitions>
????????
<Grid.ColumnDefinitions>
????????????
<ColumnDefinition?Width="50"></ColumnDefinition>
????????????
<ColumnDefinition?Width="50"></ColumnDefinition>
????????????
<ColumnDefinition?Width="*"></ColumnDefinition>
????????
</Grid.ColumnDefinitions>
????????
<Button?Grid.Row="0"?Grid.Column="0"?Content="重做"?Name="btnRedo"?Click="btnRedo_Click"></Button>
????????
<Button?Grid.Row="0"?Grid.Column="1"?Content="撤消"?Name="btnUndo"?Click="btnUndo_Click"></Button>
????????
<Canvas?Name="Board"?MouseLeftButtonDown="Canvas_MouseLeftButtonDown"?Grid.Row="1"?Grid.Column="0"?Grid.ColumnSpan="3"?Background="Black"></Canvas>
????
</Grid>
</UserControl>
大氣象 using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Net;
using?System.Windows;
using?System.Windows.Controls;
using?System.Windows.Documents;
using?System.Windows.Input;
using?System.Windows.Media;
using?System.Windows.Media.Animation;
using?System.Windows.Shapes;

namespace?SilverlightUndo
{
????
public?partial?class?MainPage?:?UserControl
????{
????????
private?bool?IsStart?=?true;//是否是起點。
????????private?double?pX1?=?0,?pY1?=?0;//起點坐標
????????Line[]?arrLine?=?new?Line[100];//silverlight不支持ArrayList之類。
????????int?iCount?=?0;//計數器

????????
public?MainPage()
????????{
????????????InitializeComponent();
????????}

????????
private?void?Canvas_MouseLeftButtonDown(object?sender,?MouseButtonEventArgs?e)
????????{
????????????Point?p?
=?e.GetPosition(sender?as?FrameworkElement);//取得鼠標點下的位置
????????????Canvas?pnl?=?sender?as?Canvas;
????????????
if?(IsStart)
????????????{
????????????????pX1?
=?p.X;//設置起點坐標
????????????????pY1?=?p.Y;
????????????}
????????????
if?(IsStart)//如果是起點,則畫起點。
????????????{
????????????????DrawPoint(pnl,?p.X,?p.Y);
????????????}
????????????
else
????????????{
????????????????DrawOneLine(pnl,?pX1,?pY1,?p.X,?p.Y);
????????????}
????????????IsStart?
=?!IsStart;
????????}
????????
//畫點
????????private?void?DrawPoint(Canvas?pnl,?double?pX1,?double?pY1)
????????{
????????????Ellipse?ellipse?
=?new?Ellipse();//畫點
????????????ellipse.Stroke?=?new?SolidColorBrush(Color.FromArgb(255,?255,?255,?255));//動態設置Stroke屬性的方法。
????????????ellipse.StrokeThickness?=?2;
????????????ellipse.Width?
=?4;
????????????ellipse.Height?
=?4;
????????????Canvas.SetLeft(ellipse,?pX1);
//動態設置Ellipse的Canvas.Top與Canvas.Left
????????????Canvas.SetTop(ellipse,?pY1);

????????????pnl.Children.Add(ellipse);
????????}
????????
//畫直線
????????private?void?DrawOneLine(Canvas?pnl,?double?pX1,?double?pY1,?double?pX2,?double?pY2)
????????{
????????????Line?line?
=?new?Line();
????????????line.X1?
=?pX1;
????????????line.Y1?
=?pY1;
????????????line.X2?
=?pX2;
????????????line.Y2?
=?pY2;

????????????line.Stroke?
=?new?SolidColorBrush(Color.FromArgb(255,?255,?255,?255));
????????????line.StrokeThickness?
=?4;

????????????pnl.Children.Add(line);

????????????
//計數器
????????????arrLine[iCount]?=?line;
????????????iCount?
+=?1;
????????}

????????
private?void?btnRedo_Click(object?sender,?RoutedEventArgs?e)
????????{
????????????
if?(arrLine[iCount]?!=?null)
????????????{
????????????????Board.Children.Add(arrLine[iCount]);
????????????????iCount?
+=?1;
????????????}
????????}

????????
private?void?btnUndo_Click(object?sender,?RoutedEventArgs?e)
????????{
????????????
if?(iCount?==?0)?return;
????????????
if?(arrLine[iCount?-?1]?!=?null)
????????????{
????????????????Board.Children.Remove(arrLine[iCount?
-?1]);
????????????????iCount?
-=?1;
????????????}
????????}
????}
}

?

源碼:http://files.cnblogs.com/greatverve/SilverlightUndo.rar

總結

以上是生活随笔為你收集整理的Silverlight撤消重做功能的实现。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 九九免费在线视频 | 亚洲五月花 | 欧美性受xxxx黑人猛交88 | 久久精品欧美一区二区 | 天天干天天拍 | 欧美亚洲精品在线观看 | 日本a在线观看 | 天堂网站 | 黄网站在线观看视频 | www.xxx.日本| 加勒比久久综合 | 黄91在线观看 | 亚洲成人精品久久久 | 成人小视频在线 | 日韩每日更新 | 日本大尺度做爰呻吟 | 成人深夜网站 | 日韩电影中文字幕在线观看 | 国产理论视频 | 91看片在线观看 | 国产伦理吴梦梦伦理 | 成人一区二区视频 | 亚洲天堂av一区二区 | 日本在线观看视频网站 | 激情文学综合网 | 亚洲国产精品福利 | 91一二区| 口舌奴vk | 久久裸体视频 | 欧美日韩综合一区二区 | 精品国产一二三区 | 国产精品无圣光 | 亚洲国产综合久久 | 黄色片视频免费看 | av在线黄 | 国产成人在线影院 | 邻居少妇张开双腿让我爽一夜 | 欧美精品一区二区三 | 艳妇乳肉亭妇荡乳av | www.18av| 欧美变态另类刺激 | 青青草原国产在线观看 | 亚洲高清中文字幕 | 日韩午夜毛片 | 国产欧美视频在线播放 | 狠狠躁日日躁 | 国产精品亚洲а∨天堂免在线 | 99久久99 | 黄色一级播放 | 性视频网址 | 亚洲一区二区欧美 | 草久久久久 | 性猛交富婆╳xxx乱大交麻豆 | 久久久久人妻一道无码AV | 朋友的姐姐2在线观看 | 成人av图片 | 亚洲在线成人 | 亚洲久操| 国产成年人免费视频 | 91在线观看| 国产美女喷水 | 李宗瑞91在线正在播放 | 精品国产av色一区二区深夜久久 | 草色噜噜噜av在线观看香蕉 | 特黄视频 | 不卡的在线视频 | 欧美性受xxx黑人xyx性爽 | 成人动漫免费观看 | 色之久久综合 | 伊人艹 | 含羞草一区二区 | 精品一区二区三区日韩 | 视频在线观看 | 国产做受高潮动漫 | 欧美久久网 | 免费在线看污 | 中文字幕在线观看二区 | 在线播放日韩av | 男人天堂网在线视频 | 91久久久久久久久久 | 国产一区二区三区18 | 麻豆视频网站在线观看 | 人禽l交视频在线播放 视频 | 欧美亚洲综合视频 | 在线看污片 | 久久午夜免费视频 | 熟妇高潮一区二区三区在线播放 | 免费a网| 美女超碰在线 | 美女啪啪国产 | 欧美三级午夜理伦三级老人 | 亚洲视频黄色 | 国产一区二区激情视频 | 男人爆操女人 | 成人免费播放视频 | 伊人888| 亚洲精品免费看 | 亚洲午夜久久久久久久久久久 | 欧美性生交片4 |