none
请熟悉sl3的朋友提供一些免费的类windos application第三方sl控件? RRS feed

  • 问题

  • 如 MenuBar, ToolBar, 特别是 Mdi 窗口之类的控件。因为既然用silverlight,我们就应该作出类windows application那么方便的silverlight应用程序。!!!!
    2009年8月14日 5:01

答案

  • Silverlight可以打造任何风格的界面,所以做出WinForm效果当然是可能的,只是没有现成的。如果你有已经做好的具有你所说的WinForm风格的网站(准备转化成Silverlight的),或有中意的国内外网站,可以将网址贴在这里,以供参考。我们大家会按照你提供的这些示例网站,帮你留意具有类似风格和功能的共享控件,一旦发现了就反馈给你(请留一个Email)。
    2009年8月16日 9:42

全部回复

  • Silverlight好像没听说有什么Mdi之类的控件,就连WPF好像都没有。再说Silverlight是浏览器插件,怎么会有Mdi呢?那个好像是WinForm才有的功能吧,难道是我一直都搞错了?
    2009年8月14日 6:18
  • 可以参考一下Silverlight的Page模式,这个比MDI方便多了的。
    控件可以参考微软提供的一个开源项目,包含许多silverlight控件的,叫Silverlight Toolkit,地址:http://silverlight.codeplex.com
    Facing problems, think first, then search, finally ask.
    2009年8月14日 6:29
    版主
  • 第三方控件用的少.顶一下吧!


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年8月14日 7:10
    版主
  • Page模式与Mdi还是有很大区别,用户体验不是很好。比如人家要同时对比两个东西,在一个窗体里面有两个子窗体,多好!我只是想做成Mdi的界面,让用户有更好的体验。你看Office都是Mdi界面的,用户毕竟习惯Mdi操作界面。我开发任何程序都想搞成Mdi界面(包括以前玩Asp.net Ajax)。注意Office几乎100%用windows的人都熟悉,Office的Word、Excel、Access、...都是Mdi界面。我们为什么不做成Mdi界面?
    2009年8月14日 7:19
  • 以前的Office用MDI饱受批评,所以现在的Office2007已经不用MDI了。客户体验不是很好,这点可能不是普遍现象。实际上,从95年到现在,我认识的客户都不喜欢MDI,他们都喜欢选项卡模式。所以WPF和Silverlight都没有MDI,如果你的客户已经习惯了MDI模式,那惟一的办法就是像版主说的那样,用Page模拟一个。至于你所说的MenuBar、ToolBar等在Xaml里根本没用,因为已经被StackPanel这些控件代替了。从你的问题可以看出你已经非常习惯WinForm编程了。但目前一个普遍认同的观点就是,WinForm水平越高,越不适应WPF。因为在WPF,包括Silverlight,界面是用Xaml来设计的,可以随意组合,有点像积木,这点和WinForm的思路完全不同。使用Xaml可以做出和MDI完全相同的效果,只是这么做似乎没什么意义。

    2009年8月14日 9:19
  • SDI界面编制程序的缺方便(简直不太需要学习,基本都可以编制),可是就是难以达到Mdi的效果!
    不是不习惯那种东西,有现存的控件,怎么会不习惯,只是sl少了Mdi,就少了一种选择。
    万一有用户非要强调使用Mdi,你说怎么办?就如,人家需要进行数据的对比(对比前,你无法预知哪个和哪个对比,也不知道有多少个界面需要对比),你有办法用用Tab做成么???纳几乎不可能,如果不用Mdi方式。 Mdi做成走样的形式,也很容易用Silverlight实现(比如就隆隆几个可以类似window可以拉大拉小模拟window窗口的层,还是非常方便的),可是如果要像真正的Mdi要考虑Menubar,Toolbar的合并问题就非常麻烦,所以我非常需要Mdi的配套控件。

    • 已编辑 TFSoft 2009年8月14日 14:41
    2009年8月14日 14:21
  • 任何软件项目不可能满足所有人都需要,世界上没有银弹的。

    Silverlight关注的是RIA,MDI仅仅是一种呈现方式,Silverlight没有包含MDI,但是可以通过其他方式来实现跟MDI一样的效果,而且我个人认为,web方式的应用比Windows的应用要更灵活。

    建议楼主把MDI这方面的需求整理一下,然后做成一套控件。
    Facing problems, think first, then search, finally ask.
    2009年8月14日 15:15
    版主
  • 采用多窗口进行数据对比是非常容易的。实现这一功能的方法就是多开几个IE就行了。Silverlight是浏览器插件,IE是承载它的窗口。Windows本身就是个MDI,所以你只要把IE看作是子窗体就可以了。另外必须说明一点,那就是Silverlight是用来改善网页的人机交互界面的,通过动画、色彩、构图等等来吸引网站访问者。它并不适合作为应用性要求过高的软件。不是WPF和WinForm的替代品,仅仅是对Html和ASP的补充,是一个小插件。它并不具备WinForm的全部功能,不过话说回来,Silverlight的一些功能,比如良好的动画支持,也是WinForm所不具备的,但你又不能指望着用Silverlight像Flash那样去搞动画片。这就是为什么要有各种不同软件的原因。对于Silverlight来说,主要还是美观第一,实用第二。如果强调MDI,那还是要用WinForm去实现。形象地说,Silverlight就是手机上的拍照功能,WinForm和WPF才是真正的相机。
    • 已标记为答案 TFSoft 2009年8月14日 15:57
    • 取消答案标记 TFSoft 2009年8月14日 15:58
    2009年8月14日 15:27
  • 你回答得非常正确。我是想弄个开源项目,在silverlight做mdi。有合作伙伴么?
    1)用winform搞,所有浏览器能跑么?
    2)你见过没有菜单工具栏的应用程序么?要做成和win App类似,用户才有较好的体验。我一贯强调软件的易用性。就是在没有Ajax之前,我都要网页有菜单,有工具栏。
    3)为什么网页应用程序没有Menubar,Toobar,那是因为他难搞,不是用户不需要。
    4)你用IE多开几个窗口,是可以,但是你能在程序里面控制你开的窗口么?
    当然你会想当然说可以控制。但是那是一个非常麻烦的过程。因为你打开的IE窗体是没有办法遍历的!
    比如说,你用代码打开了一个IE窗体,可是用户关闭了。你是非常麻烦做出判断的。
    当然你会说,你打开一个窗体,你就记录一次,可是你记录在哪里?
    你记录在打开窗体的程序里面吗,人家连你那个打开窗体的窗体也关闭,你怎么办?????

    所以我觉得还是要搞一套Mdi方案。

    2009年8月14日 16:07
  • Silverlight之间可以通信,不需要遍历(http://blogs.msdn.com/jstegman/archive/2009/03/23/local-messaging-samples.aspx)。Silverlight关闭时有Exit事件(http://msdn.microsoft.com/zh-cn/library/system.windows.application.exit(VS.95).aspx)。临时信息可以存在cookie中。Silverlight可以和ASP之间互操作,可以使用WCF。至于Menubar、Toolbar不是没有,更不是难搞,之前已经说过了,在Silverlight里是用StackPanel这类控件来是实现的。因为在WPF程序中使用“积木”思路,所以Menubar、Toolbar已经没有存在的必要了。比如Office2007的Menubar、Toolbar就是用Panel做的,用Xaml语言来描述。目前你所说的功能实际上Silverlight全都具备,而且可以非常简单的实现。唯一的问题是解决问题的思路与WinForm是不同的。WinForm是一个控件一个功能,WPF不是的。在WPF里面,提供的都是基本控件,应用时需要组装。因此虽然基本控件不多,但组合后可以形成无穷多种控件。Xaml负责组装,极其简单,还可以有动画效果。之所以使用组装的方式,是因为这样一来基本控件数量可以很少,Silverlight客户端的软件才可以做到4.7M这样小。总的来说,你所遇到的问题不是Silverlight的功能性问题,而是由于对Xaml语言不习惯所造成的。这方面可以参照WPF的教程来解决。
    2009年8月15日 5:36
  • 各人有各人的看法,我就是要有菜单。
    我从DOS2.0-WinXP(DOS以前的除外,vista我不玩,没几个人喜欢),就很少见没有菜单的应用程序。除非是做作玩的程序(如游戏)。我的缺不喜欢office2007, 我所遇见的人安装2007后都讨厌哪个东西,都删除了2007,重新安装2003。
    当然我知道可以用sl做菜单,不就是有点麻烦么。如果要自己定义一大堆东西,或者些一大堆代码来实现,当然是可以的。
    至于sl和服务器通讯,我用的自己做的协议,我不用wcf,我采用的是自己通讯协议,可以传二进制、文本。还有我从来不买书,直接上网,不是更为方便。
    说道【通讯】其实,我玩了一辈子程序间、计算机间、设备间、程序模块间的数据通讯,我是比较熟悉的。毕竟从DOS玩起。
    至于你说
    还有请高手回答:
    1)SL怎么屏蔽右键又保证能输入汉字?
    2)嵌入在在IE的模式对话中的SL插件,当SL方访问HTML时,会弹出『安全问题』对话框,如何去除?
    万分感谢!
    3)如果你能实现(我要的不是窗体间的到通讯,我要的是控制我所打开的窗体):
    31)关闭你的第一个窗体时,能够关闭程序所打开的所有窗体。
    32)当程序所打开的窗体没关闭前,第一个窗体不能关闭。
    实现31)、32)我就服气,说明你们是顶尖高手。
    因为我找不到办法实现(也许只有修改IE才可以实现),所以才希望自己做一套Mdi。
    4)还问一个弱智问题:请告知,感谢:
    如何用简单办法去除“单击以激活和使用控件”这个东西,我要直接激活。
    • 已编辑 TFSoft 2009年8月15日 10:43
    2009年8月15日 10:12
  • 我想你之所以找不到办法实现的原因是,你希望把IE+Silverlight当成应用程序来使用,但显然IE和Silverlight不是做这个用的。IE就是IE,Silverlight更是得和ASP等配合使用,它们代替不了WinForm和WPF开发的软件,自然也没有你所说的这些窗体控制功能。单击激活、安全问题提示等是IE用来保护用户安全和隐私的,确保只有用户才有主动权,否则就没法阻挡黑客了,这些与Silverlight无关。你所说的这些问题有的是Silverlight的局限性所致,有的则是故意设置的安全措施。至于用Silverlight做菜单,可以说一点都不麻烦,并不需要自己定义一大堆东西,也不需要很多的代码,只要简单的组合一下就行了。

    Shiny Zhu 版主之前已经说了Silverlight不是万能软件,它只是为打造类似Office2007这样风格的基于WPF功能的程序而设计的一个有很大局限性的RIA(当然所有软件都是有局限性的,没有万能软件)。因此如果你的需求是像Office2003那样风格的基于WinForm功能的RIA,那只能自己开发(或者是在Silverlight里开发出仿造WinForm风格的控件),就好像你不使用WCF,而是使用自己开发的通讯程序一样。这种创造性开发令人钦佩,想必过程也将会很艰辛,希望能早日看到你的作品。只不过针对你这个帖子的问题,也就是你需要类似WinForm功能的,特别是MDI功能的第三方Silverlight控件这一问题,目前所能给出的答案是“还没有”。Shiny Zhu 版主给出个最简单的解决方案,就是用Page去模拟,当然用Page模拟并不完全等于MDI,这只是最省时省力的解决方案而已。

    2009年8月15日 12:10
  • 1)我不用和asp/asp.net配合,我直接用 SL+我自己的通讯协议,可以很好完成SL和服务器的通讯;
    2)如果还要用sl+asp/asp.net,我还不如直接用asp.net+ajax;
    3)我看中的是SL统一了语言平台,所以我才想全用SL实现,ajax可要用javascript(不是我不喜欢那些东西,是因为一会javascript,一会c#,感觉不爽,并且代码重用性很差,我目前的公用程序,都改成c#了,sl以及web端都可用,多方便);
    4)sl模拟菜单能否给个例子,要求:必须实现win app的功能( 如菜单项绑定数据源,有多种状态,多个分级,有分组,能禁止、能激活、可有图标、可有选项,总之,要标准的winAPP菜单等等),我用了免费第三方的,他们做得不是很好,也试验了一个要钱的,感觉不错,你们都所很简单,但我觉得还是比较复杂,当然如果只是做一个及其简单的菜单,我想一般的人也不用学,基本都会。所以我就想用你们的,拜托了。并且使用一定要简单。
    5)我始终坚持要做成win App形式的程序,才有最好的用户体验。当然你会说,为什么不直接用WinApp呢,那是因为WinApp不是什么平台都能跑!!!!!!!!!

    2009年8月15日 14:08
  • 哎,说了半天怎么你就没明白呢。Silverlight不是WinForm,它没有使用方法上和WinForm一模一样的控件,只有使用效果上类似的。这里所说的简单也是指能让你实现大体上类似的使用效果是简单的,但如果你非要弄一个和WinForm用法完全一样的,那当然不可能简单,而且是很麻烦。MDI肯定是没有,菜单、工具条Silverlight本身没有,第三方是有的,但功能强大的当然得花钱买。如果不想花钱买,那可以用StackPanel等控件来弄一个相似的。

    这么说吧,你这个帖子的问题是:
    1. 免费;
    2. 和WinForm一模一样;
    3. 是Silverlight控件。

    回答是:
    2009年8月15日 16:07
  • ok。结贴算了。
    总之,说了半天,你们都没有搞清楚,为什么要做成类似Win APP的程序,就是为了用户体验。
    1)Ajax为什么会出来,就是用户体验,模仿WinAPP。高水平的软件一般都是模仿WinApp,你可以看看国外的有关应用程序网站,体验和WinApp一样爽。人家用Ajax甚至做成了类Win App Excel样子的程序。当然,我说的是企业应用,不是一些娱乐、新闻之类的网站。
    2)我只是认为用SL模拟WinApp应该比Ajax方便。
    3)我希望我的应用程序在任何机器上跑,但又不需要人家下载程序。(只下载个小插件,用户不烦,而且程序的维护更为 简单,所以不想用WinApp的技术),但的缺想用SL做成跟WinApp的效果来。这是绝对可能的,只是工作量稍微大点。

    2009年8月16日 9:24
  • Silverlight可以打造任何风格的界面,所以做出WinForm效果当然是可能的,只是没有现成的。如果你有已经做好的具有你所说的WinForm风格的网站(准备转化成Silverlight的),或有中意的国内外网站,可以将网址贴在这里,以供参考。我们大家会按照你提供的这些示例网站,帮你留意具有类似风格和功能的共享控件,一旦发现了就反馈给你(请留一个Email)。
    2009年8月16日 9:42