Python编程语言可以帮助我们实现哪些功能呢?它的主要应用范围都包括哪些呢?我们今天先来了解一下有关Python创建Silverlight控件的相关实现方法,以此来初步熟悉一下这一语言的应用方式以及功能特点。

其实关注Silverlight很久了,只是最初的版本令我很失望,1.0的Silverlight在我看来,就相当于强化版的VML或者SVG而已,多年以前(04年)我一直期待微软能出一个强大的web端插件,能够跟flash竞争,这么久以后,这个东西才逐渐变成现实。

好吧,Silverlight 2有了,尽管它还是beta 版,先玩玩吧。我搞了一个Visual Studio 2008 Express版,装了Web跟C#,竟然都不支持2.0的Silverlight开发,有没有搞错,就是冲着那些控件才来玩SL的,这怎么办。

这可郁闷死我了,于是我只好乖乖装完整版本的Visual Studio 2008,这玩意大得很,我把硬盘空间整理了又整理,勉强弄出一点地盘给它,N久之后终于装完,折腾了半天,那个该死的插件又装不上,搞了好久还是不行,我很生气,算了,不搞它了。

于是我决定Python创建Silverlight控件不要VS2008了,听说Silverlight 2.0支持动态语言,好,来玩玩。我以前是做JavaScript的,换个吧,我来玩玩Python,于是我就找例子,一找找到了,怎么呢,我来写了:

这里是XAML文件app.xaml

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

x:Class="System.Windows.Controls.Canvas"x:Name="Page"Width="400"Height="300">

这里是Python文件app.py

from System.Windows import Application

from System.Windows.Controls import *

from System.Windows.Browser import *

class App:

def __init__(self):

self.scene=Application.Current.LoadRootVisual(Canvas(), "app.xaml")

def start(self):

self.scene.TestButton.Click += self.TestButton_Click

def TestButton_Click(self, sender, eventArgs):

self.scene.MsgText.Text="Hello, world!"

App().start()

其他的没什么悬念了,Chiron /d,开始跑,http://localhost:2060/index.htm上出现了效果,一个文本框,一个按钮,点一下按钮,框里面出来一个hello, world!

于是我就很激动,原来是这么好玩的啊,貌似Python创建Silverlight控件写起来也很简单的哇,那我来搞两个复杂一点的控件。什么控件比较帅呢,我一想,日历吧,这个东西好,那我就开始了,我加了一行

好了,开始跑,咦,不对,说找不到Calendar这个东西,研究了一下文档,发现这个是包含在System.Windows.Controls.Extended.dll里面,于是我把这个dll拷到app目录下,还是不行,怪啊,这要怎么办呢,到处找了一遍,发现竟然没有有关Python调用SL扩展控件的文章,这可痛苦了。

但是我不甘心,我相信微软不会这么不友好,于是我继续查帮助,咦,Calendar前面要加一个前缀做命名空间,但是XAML头上怎么定义呢,我想了想,实在想不出来,然后我很猥琐地想到了Blend,嘿嘿,我下载了一个,安装,创建项目,然后创建控件,这个时候只有内部控件可以用,然后我在项目上添加引用到SDK目录下的System.Windows.Controls.Extended.dll,于是就可以创建日历了。

我要的可不是这个哦,切换到XAML栏,看到没有,这行代码:

xmlns:System_Windows_Controls_Extended="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls.Extended",原来就是它在起作用呵,于是我照样定义了一遍,仍然不行。。。

这是怎么回事?继续发奋研究文档,终于发现,在Python文件里面也要写东西的,我贴Python创建Silverlight控件的完整代码了哦,app.py

import clr

clr.AddReference("System.Windows.Controls.Extended")

from System.Windows import Application

from System.Windows.Controls import *

from System.Windows.Browser import *

class App:

def __init__(self):

self.scene=Application.Current.LoadRootVisual(Canvas(), "app.xaml")

def start(self):

# TODO: replace this with your application start logic

self.scene.TestButton.Click += self.TestButton_Click

def TestButton_Click(self, sender, eventArgs):

HtmlPage.Window.Alert(self.scene.TestCalendar.SelectedDate.ToString())

App().start()

呵呵,看到没有,最开始那两句,它是起作用的关键。下面是app.xaml

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:System_Windows_Controls_Extended="clr-namespace:

System.Windows.Controls;assembly=System.Windows.Controls.Extended"

x:Class="System.Windows.Controls.Canvas"x:Name="Page"Width="400"Height="300">

以上就是我们对Python创建Silverlight控件的相关介绍。

【责任编辑:曹凯 TEL:(010)68476606】

点赞 0

python爬silverlight_Python创建Silverlight控件编写过程经验分享相关推荐

  1. 时间表、行程安排表以及日历日程的SilverLight控件MindFusion.Scheduling

    MindFusion.Scheduling for Silverlight 控件结合了丰富的时间管理功能并且具有绚丽的界面,是一款理想的用于创建所有类型的时间表.行程安排表以及日历日程的SilverL ...

  2. 【079】用代码来创建 Android 控件

    一般来说我们在创建控件的时候都是在 XML 文件中完成的, 实施起来还是蛮方便的, 而且修改起来也可以很快的看见效果, 但是有一个很大的劣势就是没办法动态的创建控件, 举个例子, 例如我从数据库中取出 ...

  3. [原]动态创建Web控件制做计算器

    最近参加了Web基础开发的培训,收获不少,做了一个练习,在后台动态创建控件制作了一个简单功能的计算器.程序中控件创建好以后,往往不能放在想要的位置,前台的布局非常麻烦,我用Table.TableRow ...

  4. 利用css对shiny页面优化及利用htmlwidgets包创建HTML控件

    内容来源:2017年5月20日,乐逗游戏高级数据分析师在"第十届中国R会议软件工具专场"进行<HTTPS最佳安全实践>演讲分享.IT大咖说作为独家视频合作方,经主办方和 ...

  5. Silverlight 3.0 不再包含 asp:silverlight 控件

    从 Silverlight 2 升级到 Silverlight 3 可能会报如下错误,程序中可能引用了 asp:silverlight 控件: Could not load file or assem ...

  6. firefox扩展开发(二):用XUL创建窗口控件

    firefox扩展开发(二):用XUL创建窗口控件 2008-06-11 16:57 1.创建一个简单的窗口 <?xml version="1.0"?> <?xm ...

  7. 一个XAP中有多个Silverlight控件时如何选择调用

    为了节省文件大小,应该把多个Silverlight控件放在一个XAP文件里,例如Page1.xaml和Page2.xaml.第一次加载哪一个可以在App的Startup事件的处理事件中选择性加载. p ...

  8. asp.net 动态创建TextBox控件 如何加载状态信息

    接着上文Asp.net TextBox的TextChanged事件你真的清楚吗? 这里我们来说说状态数据时如何加载的. 虽然在Control中有调用状态转存的方法,但是这里有一个判断条件 if (_c ...

  9. Silverlight控件应用系列索引

    Silverlight 控件应用系列 最后更新日期:2009-10-18 1.控制器类[Controls] 展开 闭合 日历组件(Calendar) 子窗体组件(ChildWindow) 非模式窗体组 ...

最新文章

  1. python操作mysql数据库实现增删改查
  2. JAVA应用小程序(Applet)
  3. Spring框架5.1将提供对Java 11的支持
  4. AcWing算法提高课 Level-3 第四章 高级数据结构
  5. linux openldap mysql_CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin
  6. 太爽了!宅男醒来后,发现自己变成了……
  7. 5去掉button按钮的点击样式_各种好看的小按钮合集,纯css编写,最近在学习时遇到的,记录成为笔记...
  8. Git学习总结(2)——初识 GitHub
  9. Kano模型思考:以QQ第一版为例,如何确定产品优先级
  10. 校园网里,一账号多人上网或者多账号多人上网的宿舍路由器设置方法
  11. ubuntu 14.04 安装 diffmerge
  12. 电脑qq聊天记录迁移--备份与恢复
  13. 什么是嵌入式人工智能
  14. js实现bilibili弹幕列表随视频播放滚动
  15. fst 共享后缀_trie、FSA、FST(转)
  16. java linux virt_解决Unable to load library 'virt'
  17. EDM营销的关键是什么
  18. 使用DashPathEffect绘制一条动画曲线
  19. 全球地名中英文对照表(B)
  20. ORB:FAST关键点和rBRIEF描述子

热门文章

  1. oracle 28000错误码,Oracle数据库 ORA-28000 错误处理方式
  2. python常规异常的基类_Python警告的基类警告类是____。
  3. 730阵列卡支持多大硬盘_华为1000多手机哪款好?推荐只此一款!华为品牌性价比最高千元机...
  4. ajax 直接向后台发送请求,通过ajax异步向后端发送请求,响应请求向前端传送json格式数据的实现思路...
  5. 公认音质好的耳机品牌_什么品牌蓝牙耳机音质比较好?2020五款HIFI音质蓝牙耳机推荐...
  6. MySQL选择数据库
  7. 数学建模学习笔记(一)——层次分析模型
  8. youcans 的 OpenCV 学习课—1.安装与环境配置
  9. 美国计算机科学联赛获奖,【竞赛获奖】西安高新一中国际班学子在2018-2019美国计算机科学联赛 (ACSL)积分赛中创造历史!...
  10. docker 删除包含关键字的镜像_30分钟带你轻松掌握Docker原理