Esempio n. 1
0
        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");
        }
Esempio n. 2
0
    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();
    }
Esempio n. 3
0
 private void intializeEvents()
 {
     InkCanvas.AddHandler(InkCanvas.MouseDownEvent, new MouseButtonEventHandler(OnInkCanvasMouseDown), true);
 }