Open furesoft opened 6 years ago
@furesoft ,
Thank you for your interest.
It is easy and the HtmlRender already has that capability
but it is hidden in the code :)
If you want to do that please visit class MyCustomCssBoxGenerator ( see https://github.com/LayoutFarm/HtmlRenderer/blob/master/Source/LayoutFarm.YourHtmlWidget/5_HtmlBox/MyCustomCssBoxGenerator.cs#L10)
and this is an extensible point. (https://github.com/LayoutFarm/HtmlRenderer/blob/master/Source/LayoutFarm.YourHtmlWidget/5_HtmlBox/MyCustomCssBoxGenerator.cs#L24)
The code demonstrates "custom control" for input tag and canvas tag (both are implemented with PixelFarm's UI control) you can add other tags.
I will show an example here.
Let's begin with
_Test3MixHtml => 00.html test case
The current Acid1 test page should look like this ...
Acid1 test page shows 2 gray boxes (input controls) after 'bang' and 'whimper'
the code that renders the 2 small boxes is here (https://github.com/LayoutFarm/HtmlRenderer/blob/master/Source/LayoutFarm.YourHtmlWidget/5_HtmlBox/MyCustomCssBoxGenerator.cs#L131)
Now, modify it with this ...
in red box, test it, I change bg-color to red and add 'child /sub' label with text 'R'
Run again,
That's it
Above, in this version, all controls are 'Windowless' control.
Do you want 'Window/ Native' control ?
If you want to add more MyCustomCssBoxGenerator or replace it
please see here: https://github.com/LayoutFarm/HtmlRenderer/blob/master/Source/Test3_MixHtml/HtmlHostCreatorHelper.cs#L34
can i add winforms controls?
It is possible. But I need some modification, because in this version all controls are 'Windowless'.
But I'm also thinking about adding a 'Window' control too. There are 2 ways.
Direct embed the control into the host. => in this way the 'Windowless' object can't show on top of it.
Indirect embed the control => hide actual control, and copy Hdc of it and render into a dedicated html element object. and route mouse/keyboard event to the actual control.
What do you think about it?
yes thats a good idea
like...
adds fastcoloredtextbox as control