python爬silverlight_Python创建Silverlight控件编写过程经验分享
Python編程語言可以幫助我們實現(xiàn)哪些功能呢?它的主要應(yīng)用范圍都包括哪些呢?我們今天先來了解一下有關(guān)Python創(chuàng)建Silverlight控件的相關(guān)實現(xiàn)方法,以此來初步熟悉一下這一語言的應(yīng)用方式以及功能特點。
其實關(guān)注Silverlight很久了,只是最初的版本令我很失望,1.0的Silverlight在我看來,就相當(dāng)于強(qiáng)化版的VML或者SVG而已,多年以前(04年)我一直期待微軟能出一個強(qiáng)大的web端插件,能夠跟flash競爭,這么久以后,這個東西才逐漸變成現(xiàn)實。
好吧,Silverlight 2有了,盡管它還是beta 版,先玩玩吧。我搞了一個Visual Studio 2008 Express版,裝了Web跟C#,竟然都不支持2.0的Silverlight開發(fā),有沒有搞錯,就是沖著那些控件才來玩SL的,這怎么辦。
這可郁悶死我了,于是我只好乖乖裝完整版本的Visual Studio 2008,這玩意大得很,我把硬盤空間整理了又整理,勉強(qiáng)弄出一點地盤給它,N久之后終于裝完,折騰了半天,那個該死的插件又裝不上,搞了好久還是不行,我很生氣,算了,不搞它了。
于是我決定Python創(chuàng)建Silverlight控件不要VS2008了,聽說Silverlight 2.0支持動態(tài)語言,好,來玩玩。我以前是做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上出現(xiàn)了效果,一個文本框,一個按鈕,點一下按鈕,框里面出來一個hello, world!
于是我就很激動,原來是這么好玩的啊,貌似Python創(chuàng)建Silverlight控件寫起來也很簡單的哇,那我來搞兩個復(fù)雜一點的控件。什么控件比較帥呢,我一想,日歷吧,這個東西好,那我就開始了,我加了一行
好了,開始跑,咦,不對,說找不到Calendar這個東西,研究了一下文檔,發(fā)現(xiàn)這個是包含在System.Windows.Controls.Extended.dll里面,于是我把這個dll拷到app目錄下,還是不行,怪啊,這要怎么辦呢,到處找了一遍,發(fā)現(xiàn)竟然沒有有關(guān)Python調(diào)用SL擴(kuò)展控件的文章,這可痛苦了。
但是我不甘心,我相信微軟不會這么不友好,于是我繼續(xù)查幫助,咦,Calendar前面要加一個前綴做命名空間,但是XAML頭上怎么定義呢,我想了想,實在想不出來,然后我很猥瑣地想到了Blend,嘿嘿,我下載了一個,安裝,創(chuàng)建項目,然后創(chuàng)建控件,這個時候只有內(nèi)部控件可以用,然后我在項目上添加引用到SDK目錄下的System.Windows.Controls.Extended.dll,于是就可以創(chuàng)建日歷了。
我要的可不是這個哦,切換到XAML欄,看到?jīng)]有,這行代碼:
xmlns:System_Windows_Controls_Extended="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls.Extended",原來就是它在起作用呵,于是我照樣定義了一遍,仍然不行。。。
這是怎么回事?繼續(xù)發(fā)奮研究文檔,終于發(fā)現(xiàn),在Python文件里面也要寫東西的,我貼Python創(chuàng)建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()
呵呵,看到?jīng)]有,最開始那兩句,它是起作用的關(guān)鍵。下面是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創(chuàng)建Silverlight控件的相關(guān)介紹。
【責(zé)任編輯:曹凱 TEL:(010)68476606】
點贊 0
總結(jié)
以上是生活随笔為你收集整理的python爬silverlight_Python创建Silverlight控件编写过程经验分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的编程模式有哪两种_pyth
- 下一篇: java zar_唬人的Java泛型并不