Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a Canvas that support Text (Like RichEditBox) and Inking (Like InkCanvas) #1572

Closed
8 tasks
Vijay-Nirmal opened this issue Oct 25, 2017 · 14 comments
Closed
8 tasks
Assignees
Labels
controls 🎛️ help wanted Issues identified as good community contribution opportunities in progress 🚧
Milestone

Comments

@Vijay-Nirmal
Copy link
Contributor

Vijay-Nirmal commented Oct 25, 2017

I'm submitting a...

  • Feature request

Description

Link to original issue #1081

It is very difficult to Create a Custom RichEditBox with all the basic features Like Text Formatting, Bullets and numbering, Support for Inking Like OneNote and also to support adaptive layout, that's too much work for basic Text editing. To make it easy we need two controls

  1. Toolbar for text formatting - We have created it already (Thanks to @WilliamABradley )
  2. Canvas that support Text (Like RichEditBox) and Inking (Like InkCanvas)

Control feature request

UserVoice link

Create a Custom RichEditBox with all the basic features Like Text Formatting, Support for Inking Like OneNote

This issue has more than 55 votes

@nmetulev nmetulev added controls 🎛️ help wanted Issues identified as good community contribution opportunities labels Oct 25, 2017
@nmetulev nmetulev added this to the future milestone Oct 25, 2017
@nmetulev
Copy link
Contributor

The requirements here are to build an Infinite Canvas that supports:

  • inking
  • rich text
  • scroll and zoom
  • virtualization

Open to anyone that wants to pick this up.

@Vijay-Nirmal
Copy link
Contributor Author

@nmetulev

scroll and zoom

What do mean by zoom? no one will zoom in a text editor (OR) do you meant allow devs to scale the whole canvas something like MS Word.

winword_2017-10-26_13-23-52

I have created a checklist in my post. Please edit it if there are any future ideas.

@WilliamABradley
Copy link
Contributor

Wouldn't the format of things like this require a special Markup or something to store such output?
Microsoft obviously uses the Proprietary Office Formats such as DocX, etc.

Replicating a control like this would be a massive undertaking, wouldn't it?
RTF doesn't have the capability to store Ink does it?

@nmetulev
Copy link
Contributor

@Vijay-Nirmal, correct on zoom. For example, OneNote allows you to zoom in and out of the canvas

@WilliamABradley, agree, this will be more complex then most other controls in the toolkit, but not by much. There will be a need for a custom format, but shouldn't be too complex. Quick approach would be to store the RTF and inking separately and just keep track of them and their location in a json/xml.

@Vijay-Nirmal
Copy link
Contributor Author

@nmetulev What is the use of virtualization in this control?

@nmetulev
Copy link
Contributor

Canvas such as this that can have infinite size can create performance issues if you keep all the content in memory, especially if there is a lot of content outside of the screen. Virtualization allows to only keep the UI in memory that is on screen (and a bit off screen) and still be able to scroll, zoom, and do everything else

@Vijay-Nirmal
Copy link
Contributor Author

Vijay-Nirmal commented Oct 26, 2017

Middle button click to scroll

gif

Edit: Maybe we should create a ScrollViewer Extension to do this. I will create a separate issue regarding this.

@IbraheemOsama
Copy link
Member

Seems like an interesting challenge :)

@zlstringham
Copy link

@nmetulev Is there a restriction against using an external package to render such a control? Microsoft.Win2D seems ideal since it can render ink as well as text.

@nmetulev
Copy link
Contributor

nmetulev commented Nov 5, 2017

None at all, we are already using Win2D for some of the animation effects.

I agree, Win2D would be the way to go here, especially in combination with the CompositionVirtualDrawingSurface

@michael-hawker
Copy link
Member

Wanted to call out #854 and #490 which seem somewhat related to this type of creative canvas.

@nmetulev
Copy link
Contributor

@michael-hawker, agree, I added it to the list above :)

@IbraheemOsama IbraheemOsama self-assigned this Dec 3, 2017
@murrayLuke
Copy link

murrayLuke commented Apr 6, 2018

is there still interest in this? I personally would love to see something like this.

@IbraheemOsama
Copy link
Member

Yeah, we're working on this feature and hopefully we will ship it in the next release.

@IbraheemOsama IbraheemOsama mentioned this issue Apr 8, 2018
7 tasks
@Vijay-Nirmal Vijay-Nirmal modified the milestones: future, 3.0 May 25, 2018
@ghost ghost locked as resolved and limited conversation to collaborators Nov 26, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
controls 🎛️ help wanted Issues identified as good community contribution opportunities in progress 🚧
Projects
None yet
Development

No branches or pull requests

8 participants