溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中怎么創(chuàng)建一個(gè)Silverlight控件

發(fā)布時(shí)間:2021-07-05 16:41:30 來(lái)源:億速云 閱讀:157 作者:Leah 欄目:編程語(yǔ)言

這篇文章給大家介紹Python中怎么創(chuàng)建一個(gè)Silverlight控件,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

XAML文件app.xaml

  1. < Canvas xmlns="http://schemas.microsoft.com/client/2007"   

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

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

  4. < TextBlock x:Name="MsgText" Canvas.Top="10" Canvas.Left="10"> 

  5. < /TextBlock>   

  6. < Button x:Name="TestButton" Canvas.Top="40" Canvas.Left="10" 
    Content="Test">< /Button>   

  7. < /Canvas> 

這里是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()

其他的沒(méi)什么懸念了,Chiron /d,開(kāi)始跑,http://localhost:2060/index.htm上出現(xiàn)了效果,一個(gè)文本框,一個(gè)按鈕,點(diǎn)一下按鈕,框里面出來(lái)一個(gè)hello, world!

于是我就很激動(dòng),原來(lái)是這么好玩的啊,貌似Python創(chuàng)建Silverlight控件寫(xiě)起來(lái)也很簡(jiǎn)單的哇,那我來(lái)搞兩個(gè)復(fù)雜一點(diǎn)的控件。什么控件比較帥呢,我一想,日歷吧,這個(gè)東西好,那我就開(kāi)始了,我加了一行

< Calendar x:Name="TestCalendar" Canvas.Top="10" Canvas.Left="10"/>

好了,開(kāi)始跑,咦,不對(duì),說(shuō)找不到Calendar這個(gè)東西,研究了一下文檔,發(fā)現(xiàn)這個(gè)是包含在System.Windows.Controls.Extended.dll里面,于是我把這個(gè)dll拷到app目錄下,還是不行,怪啊,這要怎么辦呢,到處找了一遍,發(fā)現(xiàn)竟然沒(méi)有有關(guān)Python調(diào)用SL擴(kuò)展控件的文章,這可痛苦了。

但是我不甘心,我相信微軟不會(huì)這么不友好,于是我繼續(xù)查幫助,咦,Calendar前面要加一個(gè)前綴做命名空間,但是XAML頭上怎么定義呢,我想了想,實(shí)在想不出來(lái),然后我很猥瑣地想到了Blend,嘿嘿,我下載了一個(gè),安裝,創(chuàng)建項(xiàng)目,然后創(chuàng)建控件,這個(gè)時(shí)候只有內(nèi)部控件可以用,然后我在項(xiàng)目上添加引用到SDK目錄下的System.Windows.Controls.Extended.dll,于是就可以創(chuàng)建日歷了。

我要的可不是這個(gè)哦,切換到XAML欄,看到?jīng)]有,這行代碼:

xmlns:System_Windows_Controls_Extended="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls.Extended",原來(lái)就是它在起作用呵,于是我照樣定義了一遍,仍然不行。。。

這是怎么回事?繼續(xù)發(fā)奮研究文檔,終于發(fā)現(xiàn),在Python文件里面也要寫(xiě)東西的,我貼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)]有,最開(kāi)始那兩句,它是起作用的關(guān)鍵。下面是app.xaml

  1. < Canvas xmlns="http://schemas.microsoft.com/client/2007"   

  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:System_Windows_Controls_Extended="clr-namespace:
    System.Windows.Controls;assembly=System.Windows.Controls.Extended"   

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

  4. < System_Windows_Controls_Extended:Calendar 
    x:Name="TestCalendar" Canvas.Top="10" Canvas.Left="10"/>   

  5. < Button x:Name="TestButton" Canvas.Top="180" 
    Canvas.Left="10" Content="Test">< /Button>   

  6. < /Canvas> 

關(guān)于Python中怎么創(chuàng)建一個(gè)Silverlight控件就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI