public InkCollector(InkCanvas canvas, InkFrame inkframe) { _inkCanvas = canvas; _mainPage = inkframe; //初始化state //init all the states:一定要在presenter之后init _state_ink = new InkState_Ink(this); _state_erase = new InkState_Erase(this); _state_pointerase = new InkState_PointErase(this); _state_move = new InkState_Move(this); _state_select = new InkState_Select(this); _state_rotate = new InkState_Rotate(this); _state_zoom = new InkState_Zoom(this); _state_inserttext = new InkState_InsertText(this); _state_inkplay = new InkState_Inkplay(this); _state_Gesture = new InkState_Gesture(this); _state_DrawArrow = new InkState_DrawArrow(this); _state_VideoPlay = new InkState_VideoPlay(this); _state_AutoMove = new InkState_AutoMove(this); _state_DrawGraphic = new InkState_DrawGraphic(this); _state_None = new InkState_None(this); _state_DrawStrokeInGraphic = new InkState_DrawStrokeInGraphic(this); _state_Summarization = new InkState_Summarization(this); _state_MergeSummarization = new InkState_MergeSummarization(this); _state_HyperLinkSummarization = new InkState_HyperLinkSummarization(this); _state_AddKeyFrameAnnotation = new InkState_AddKeyFrameAnnotation(this); _state_TapestrySummarization = new InkState_TapestrySummarization(this); _state_DoubleSpiralSummarization = new InkState_DoubleSpiralSummarization(this); _state = _state_ink;//默认state _inkCanvas.AddHandler(InkCanvas.MouseLeftButtonDownEvent, new MouseButtonEventHandler(this._inkCanvas_MouseDown), true); _inkCanvas.AddHandler(InkCanvas.MouseLeftButtonUpEvent, new MouseButtonEventHandler(this._inkCanvas_MouseUp), true); //初始化事件 _inkCanvas.MouseMove += new MouseEventHandler(_inkCanvas_MouseMove); //System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); //sw.Reset(); //sw.Start(); //LoadTemplates loadTemplates = new LoadTemplates(); //sw.Stop(); //Console.WriteLine("loadTemplates总需要时间:" + sw.ElapsedMilliseconds + "ms"); }
public static void Main() { // XAML string that defines the WPF controls string strXAML = @" <Window xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"" x:Name=""Window"" Title=""WPF Ink demo Keys: C D E H + - N B S Q Ctrl-X Ctrl-C Ctrl-V Ctrl-S Ctrl-O Ctrl-P"" WindowStyle=""ToolWindow"" ShowInTaskbar=""True""> <InkCanvas x:Name=""InkCanvas""></InkCanvas> </Window>"; // prepare XML document XmlDocument XAML = new XmlDocument(); // read XAML string XAML.LoadXml(strXAML); // and convert to XML XmlNodeReader XMLReader = new XmlNodeReader(XAML); // generate WPF object tree Window objWindow; try { // set XAML root object objWindow = (Window)XamlReader.Load(XMLReader); } catch { // XamlReader generates an exception on error in XAML definition MessageBox.Show("Error while creating the WPF controls out of the XAML description", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } // fill Queue with foreground colors ColorQueue.Enqueue(Colors.DarkBlue); ColorQueue.Enqueue(Colors.DarkGreen); ColorQueue.Enqueue(Colors.DarkCyan); ColorQueue.Enqueue(Colors.DarkRed); ColorQueue.Enqueue(Colors.DarkMagenta); ColorQueue.Enqueue(Colors.Gray); ColorQueue.Enqueue(Colors.DarkGray); ColorQueue.Enqueue(Colors.Blue); ColorQueue.Enqueue(Colors.Green); ColorQueue.Enqueue(Colors.Cyan); ColorQueue.Enqueue(Colors.Red); ColorQueue.Enqueue(Colors.Magenta); ColorQueue.Enqueue(Colors.Yellow); ColorQueue.Enqueue(Colors.White); ColorQueue.Enqueue(Colors.Black); // fill Queue with background brushes BrushQueue.Enqueue(Brushes.Yellow); BrushQueue.Enqueue(Brushes.Magenta); BrushQueue.Enqueue(Brushes.Red); BrushQueue.Enqueue(Brushes.Cyan); BrushQueue.Enqueue(Brushes.Green); BrushQueue.Enqueue(Brushes.Blue); BrushQueue.Enqueue(Brushes.DarkGray); BrushQueue.Enqueue(Brushes.Gray); BrushQueue.Enqueue(Brushes.DarkMagenta); BrushQueue.Enqueue(Brushes.DarkRed); BrushQueue.Enqueue(Brushes.DarkCyan); BrushQueue.Enqueue(Brushes.DarkGreen); BrushQueue.Enqueue(Brushes.DarkBlue); BrushQueue.Enqueue(Brushes.Black); BrushQueue.Enqueue(Brushes.White); // search object of InkCanvas control InkCanvas objInkCanvas = (InkCanvas)objWindow.FindName("InkCanvas"); // add eventhandler (the last parameter false means, that the handler is not called, when an event is already handled) objInkCanvas.AddHandler(FrameworkElement.KeyDownEvent, new KeyEventHandler(InkCanvas_KeyDown), true); // define Tooltip for the window objWindow.ToolTip = @" C - Clear D - Draw E - Erase H - Highlight + - - Size of brush N B - Next color Next background S - Select Q - Quit Ctrl-X Ctrl-C Ctrl-V - Cut Copy Paste Ctrl-S Ctrl-O Ctrl-P - Save / Open as ISF file, Save as PNG file "; // and show WPF window objWindow.ShowDialog(); }
private void intializeEvents() { InkCanvas.AddHandler(InkCanvas.MouseDownEvent, new MouseButtonEventHandler(OnInkCanvasMouseDown), true); }