北冥神功与六脉神剑(二)

北冥神功与六脉神剑(一)

大鱼小鱼无不容,再一次运行FirstApp.exe

         我们打开FirstApp这个工程,在Form1上面增加一个panel控件,同时设置panel1的“Anchor”属性:

(带有一个panel的Form1)

编译之后重新生成FirstApp.exe。我们修改一下FirstApp.Index.html:

<!-- This is "index.html". Normally, it is named "ProjectName.index.html". This webpage is the real entry point of the HTML-driven App. -->
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>欢迎您进入一个全新的.NET世界, 我是您的朋友WebRuntime</title>
    <link rel="icon" href="webpage/app.png" sizes="32x32">
</head>
<body>
    <cosmos>
        <!-- Define new DOM elements -->
        <define tagName="mainWindow"></define>
        <define tagName="application"></define>
        <define tagName="webViewport"></define>
        <!-- End Define new DOM elements -->
        <!-- The "application" element is required, it can provide application-level configuration. -->
        <application>
            <ntp>
                <winNucleus>
                    <xobj id='grid' rows='1' cols='2' width='350,350,' splitterwidth='6'>
                        <xobj objid="FirstApp.Form1,host"></xobj>
                        <xobj objid="nucleus"></xobj>
                    </xobj>
                </winNucleus>
            </ntp>
            <defaultworkbench>
                <winNucleus>
                    <xobj id='grid' rows='1' cols='2' width='350,350,' splitterwidth='6'>
                        <xobj objid="FirstApp.Form1,host"></xobj>
                        <xobj objid="nucleus"></xobj>
                    </xobj>
                </winNucleus>
            </defaultworkbench>
            <urls>
                <url url="host:WebPage/sunny.html"></url>
            </urls>
        </application>
        <mainWindow objid="FirstApp.Form1,host" caption="The Universe" width="2400" height="1600" id="mainForm">
            <panel1 id="mainworkclient">
                <default>
                    <winNucleus>
                        <xobj style="39" activepage="1">
                            <xobj caption="Cloudx Application" id='Splitter1' rows='1' cols='2' height='250,' width='350,350,' borderwidth='0' splitterwidth='6'>
                                <xobj objid="nucleus">
                                </xobj>
                                <xobj objid="" id="Sunny_ntpctrl">
                                </xobj>
                            </xobj>
                            <xobj caption="Common Web Runtime for Application" url="host"></xobj>
                        </xobj>
                    </winNucleus>
                </default>
            </panel1>
        </mainWindow>
        <webViewport>
            <winNucleus>
                <xobj rows="1" cols="2" width="750," id="xxx" caption="test caption">
                    <xobj objid="FirstApp.Form1,host" id="navCtrl">
                    </xobj>
                    <xobj objid="nucleus" id="mainClient">
                    </xobj>
                </xobj>
            </winNucleus>
        </webViewport>
    </cosmos>
    <strong style="font-size:32px; color:black">欢迎<i style="color:fuchsia">您来到</i><i style="color:blue">FirstApp的 </i><b style="color:coral">.NET桌面软件生态世界</b>!</strong>
</body>
</html>

注意页面之中关于panel1的对应元素:

            <panel1 id="mainworkclient">
                <default>
                    <winNucleus>
                        <xobj style="39" activepage="1">
                            <xobj caption="Cloudx Application" id='Splitter1' rows='1' cols='2' height='250,' width='350,350,' borderwidth='0' splitterwidth='6'>
                                <xobj objid="nucleus">
                                </xobj>
                                <xobj objid="" id="Sunny_ntpctrl">
                                </xobj>
                            </xobj>
                            <xobj caption="Common Web Runtime for Application" url="host"></xobj>
                        </xobj>
                    </winNucleus>
                </default>
            </panel1>

修改之后重新启动FirstApp.exe,我们看到: 

FirstApp运行时视频

(看上去增加了很多东西) 

Form窗体中间部分,事实上就是浏览器窗口,切换浏览器标签,我们会看到: 

点击其中的超链接:

点击页面上的按钮: 

我们看到,Form窗体呈现很多设计时没有的动态变化,切换Form中心底部的标签:

 事实上,当我们回到FirstApp.Index.html,我们发现,所有的变化,都源于Web页面上的DOM元素。在FirstApp.index.html之中,我们看到如下内容:

            <winNucleus>
                <xobj rows="1" cols="2" width="750," id="xxx" caption="test caption">
                    <xobj objid="FirstApp.Form1,host" id="navCtrl">
                    </xobj>
                    <xobj objid="nucleus" id="mainClient">
                    </xobj>
                </xobj>
            </winNucleus>

这里,”objid="FirstApp.Form1,host"“,导致FirstApp内部的Form1成为运行时Form1的”一部分“,如下图:

我们似乎看到一种可能性:按照类似的写法,似乎所有的.NET UserControl都应该成为中心部分可以通过Web页面动态的加载上去,事实上,系统内部就是这样实现的。

        ”大鱼小鱼无不容“  表达了这样的设想,一旦Exe做为入口确定下来,那么那些符合规范的.NET GUI对象,都应该是Web页面驱动的元素,如果一个应用系统内置了浏览器,那么就意味着,开发者可以通过大量的写Web页面,营造出表现力极为丰富的”应用内容“空间,特别,这些Web页面可以成为一个Form窗体(更一般的情况:Win32窗体)的一部分,进而形成了”大鱼小鱼无不容“的态势。北冥神功的要义是,那些好的东西,都可以为你所用,不局限于你应用系统之内的那些元素……

(待续……)      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIGC Browser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值