예제 #1
0
        private async void SetImage(byte[] ImageData)
        {
            MedicalCanvas.Children.Clear();
            if (ImageData == null)
            {
                MedcialInkManager = new InkManager();
                return;
            }
            InkManager inkMgr = MedcialInkManager;

            renderer = new XamlInkRenderer(MedicalCanvas);

            using (var stream = new InMemoryRandomAccessStream())
            {
                await stream.WriteAsync(ImageData.AsBuffer());

                await stream.FlushAsync();

                stream.Seek(0);

                await inkMgr.LoadAsync(stream);

                var iskList  = inkMgr.GetStrokes();
                int iskCount = iskList.Count;
                renderer.Clear();
                renderer.AddInk(iskList);
            }
        }
예제 #2
0
        async private void appBarLoad_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                FileOpenPicker openPicker = new FileOpenPicker();
                openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
                openPicker.FileTypeFilter.Add(".gif");
                StorageFile file = await openPicker.PickSingleFileAsync();

                if (file != null)
                {
                    ClearAllStrokes();
                    using (IInputStream stream = await file.OpenSequentialReadAsync())
                    {
                        await inkManager.LoadAsync(stream);
                    }

                    foreach (InkStroke stroke in inkManager.GetStrokes())
                    {
                        Path path = XamlInkRenderer.CreateBezierPath(stroke);
                        inkCanvas.Children.Add(path);
                    }

                    status.Log(LocalizableStrings.INK_LOAD_SUCCESS);
                }
            }
            catch (Exception ex)
            {
                status.Log(ex.Message);
            }
        }
예제 #3
0
        public InkPage()
        {
            InitializeComponent();

            thisView = ApplicationView.GetForCurrentView();
            if (thisView != null)
            {
                thisView.VisibleBoundsChanged += thisView_VisibleBoundsChanged;
            }

            navigationHelper = new NavigationHelper(this);

            drawingAttributes       = new InkDrawingAttributes();
            drawingAttributes.Color = coffeeColor;
            double penSize = 3.0;

            drawingAttributes.Size           = new Size(penSize, penSize);
            drawingAttributes.IgnorePressure = true;
            drawingAttributes.FitToCurve     = true;

            try
            {
                inkManager = new InkManager();
                inkManager.SetDefaultDrawingAttributes(drawingAttributes);
                renderer = new XamlInkRenderer(inkCanvas);
                renderer.Clear();
            }
            catch (Exception ex)
            {
                App.ShowMessage(ex.ToString(), true);
                if (Frame != null && Frame.CanGoBack)
                {
                    Frame.GoBack();
                }
            }

            inkCanvas.PointerPressed  += new PointerEventHandler(InkCanvas_PointerPressed);
            inkCanvas.PointerMoved    += new PointerEventHandler(InkCanvas_PointerMoved);
            inkCanvas.PointerReleased += new PointerEventHandler(InkCanvas_PointerReleased);
            inkCanvas.PointerExited   += new PointerEventHandler(InkCanvas_PointerReleased);
        }