2010年3月30日 星期二

Silverlight 4當中的剪貼簿支援

在Silverlight 4當中,剪貼簿開始被直接支援,但是由於畢竟應用程式是執行在瀏覽器當中,所以安全性還是會被額外的考量,所以當您撰寫的Silverlight應用程式欲存取剪貼簿時,會出現底下這樣的畫面:

待使用者按下『是(Y)』後,我們的程式才能夠存取剪貼簿。

不過,程式碼卻相當簡單,存取剪貼簿的程式碼如下:
private void Button_Paste_Click(object sender, RoutedEventArgs e)
{
//將文字貼上RichTextBox2
RichTextBox2.Selection.Text = System.Windows.Clipboard.GetText();
}
private void Button_Copy_Click(object sender, RoutedEventArgs e)
{
//從RichTextBox1中將選取的文字填入剪貼簿
System.Windows.Clipboard.SetText(RichTextBox1.Selection.Text);
}

透過靜態類別Clipboard,我們就可以輕易的在系統剪貼簿中存取文字類型的資料。

2010年3月25日 星期四

[研討會] 面對VS2010 我們準備好了...

嘿嘿,是的,面對VS2010 我們準備好了...

VS2010上市在即, 三螢一雲的開發平台:Microsoft Visual Studio 2010 上市發表會 開始報名囉...

詳細的訊息可參考底下網頁:[Visual Studio 2010 上市發表會]

時間還有一個多月,但是由於這次的內容以及 .NET 4 的新版涉及相當多不同的領於,有更強的.NET 4, 嶄新的VS2010, 還有令人引頸期盼的Silverlight 4, 全方位的ASP.NET 4, 以及引領未來風潮的 Windows Azure...在這一場發表會中,您將會一次看到這些嶄新功能的全新體驗。

My Advice? 趕快報名吧...有台北,台中,高雄三個場次唷...

2010年3月24日 星期三

Silverlight 4中的檔案拖曳 Part II - MediaPlayer

有人看了這篇,以為圖片中的拖曳wmv檔案是唬人的,因為圖片有但範例卻沒有,如果你這樣認為,那可誤會大了。

Silverlight 4當中的拖曳功能,當然可以把任何檔案拖曳到Silverlight 4的應用程式中,不管是文字檔案、圖形、或是wmv媒體檔,都是可以的,眼見為憑,請看:[測試範例]

貼心小提醒:測試上面這個範例時,別忘了要先安裝Silverlight 4 RC run-time, 因為RC版和Beta2版的Run-Time是不同的。

呵呵,很讚,不是嗎? ^_^

2010年3月21日 星期日

天使飛飛 Flying Togother

週日的晚上10點,在TVBS節目上看到關於 天使飛飛 紀錄片的片段,看到身心障礙家庭所遭遇到的問題以及努力,回想起前陣子因為家人的關係,自己住在醫院的那段時間,多少可以體會到病人家屬所面對的辛苦。很多真的不是三言兩語能說清楚的。

看了這段影片之後,不由得萬千感慨。

天使飛飛 相關訊息可以參考 http://flyflyangel.blogspot.com/2009/09/blog-post_4180.html

天使心家族 相關訊息可以參考 http://www.ah-h.org/

天使飛飛紀錄片01 http://www.youtube.com/watch?v=fGrWC3n9JA4


天使飛飛紀錄片02 http://www.youtube.com/watch?v=SvmhPczc_gA


天使飛飛紀錄片03 http://www.youtube.com/watch?v=v-3u-2rxXNE

天使飛飛紀錄片04 http://www.youtube.com/watch?v=-x4vp_inQrs


天使飛飛紀錄片05 http://www.youtube.com/watch?v=nlr8j7Wjyw0


天使飛飛紀錄片06 http://www.youtube.com/watch?v=W_w0odJ3seo



天使飛飛紀錄片07 http://www.youtube.com/watch?v=zHKgPWUcDWs


天使飛飛紀錄片08 http://www.youtube.com/watch?v=f8BOsidVydc


天使飛飛紀錄片09 http://www.youtube.com/watch?v=m91UCWziz94


天使飛飛紀錄片10 http://www.youtube.com/watch?v=XWjBfJon3CA


Silverlight 4中的檔案拖曳支援

在Silverlight 4當中,針對拖曳的行為也有相當令人激賞的增強,這同時也讓Silverlight中OOB應用程式所能達成的效果又向傳統的WindowsForm應用程式逼近了一大步。

過去我們已經可以透過程式碼在Silverlight應用程式的畫面中讓物件(element)們被拖曳,現在在Silverlight 4當中,我們甚至可以把實體檔案拖曳到瀏覽器上正在執行的Silverlight應用程式中。

Silverlight 4當中,針對所有的UIElement物件,增加了一個AllowDrop屬性,您可以直接將其設定為True:
< name="textBox1" fontsize="16" acceptsreturn="True" allowdrop="True" />
如此一來,該物件將被允許接收拖曳的檔案,也就是說,您可以從桌面、檔案總管等位置,把一個或多個檔案拖曳到剛才你指定AllowDrop為True的Silverlight物件上:

這樣還不夠,這只是將控制項設定為可以接受檔案而已,當檔案被拖曳到物件上之後,我們還需要去開啟它,並且透過程式碼來做一些額外的處理,例如開檔、顯示…等動作。

我們可以在控制項的Drop事件中來處理檔案的開啟與讀取動作:
private void textBox1_Drag(object sender, DragEventArgs e)
{
if (e.Data == null) return;
//從e.Data取得資料物件
IDataObject DataObject = e.Data as IDataObject;
//取得檔案(集合,可能有多個檔案)
System.IO.FileInfo[] files = (System.IO.FileInfo[])DataObject.GetData(DataFormats.FileDrop);

//列舉每一個檔案
foreach (System.IO.FileInfo item in files)
{
//如果檔名為*.txt
if (item.Extension.Equals(".txt"))
{
//則開檔
using (System.IO.Stream stream = item.OpenRead())
{
using (System.IO.StreamReader reader = new System.IO.StreamReader(stream, System.Text.UnicodeEncoding.Unicode ))
{
//讀取並填入TextBox中
this.textBox1.Text = reader.ReadToEnd();
}
}
return; //僅處理第一個
}
else
{
MessageBox.Show("請拖曳文字檔!");
}
}
}

在上面的程式碼中,你會看到我們我們透過Drag事件的參數『e.Data』可以取得檔案物件,由於物件可能是個檔案集合(使用者一次拖曳了多個檔案),因此我們將其轉為System.IO.FileInfo[]型別,接著透過foreach取得物件內容即可,上面的範例可以在TextBox中顯示使用者拖曳到畫面上的文字檔(不過需要注意其編碼,上面的範例支援Unicode格式的文檔。
[範例測試]

2010年3月17日 星期三

Silverlight對Windows Phone的支援

Ok, 稍微分享一下心得,截至目前為止,我們知道整個Windows Phone的應用程式開發標準的工具就是Silverlight(來的好,等很久了,嘿嘿,這讓我們的市場又大了一塊),落實在Windows Phone上的Silverlight開發技術主要是based-on Silverlight 3的架構,目前Windows Phone上支援的feature包含:
Silverlight基本輸出入功能, XAML UI的呈現, Media(支援列表請參考下圖), Deep Zoom, Controls, Layout, Data binding, Isolated storage, Networking (HttpWebRequest, WebClient), XAP packaging, XML serialization, Windows Communication Foundation (WCF), LinQ, Web-Browser Control(SL4) <----上面這些,常常看我Blog或是書籍的讀者肯定知道是些什麼, 所以不贅述...

而底下這些則是Windows Phone版本中的Silverlight獨有的一些支援或功能:
Gesture-aware controls
Manipulation events
TextBox control額外支援了Software input panel (SIP)
Application Bar
Locatioin(透過GPS, Wi-Fi, 或cellular)等機制取得位置
Push Notification service

當然,還有一些像是電話本身的功能,例如撥號,照片的存放...等,Silverlight for Windows Phone中一樣有相對應的Class Library支援。

Media支援列表:(竟然...支援GIF!)


當然,由於現在是CTP,所以不是沒有改變的可能。

總括來說,對於既有的Silverlight開發人員來說,絕對是個利多的消息,整個開發方式幾乎和典型的Silverlight一樣,對開發人員來說不會造成而外的困擾。不管是近端資料存取或遠端資料存取方式都和SL3中的幾乎一致,喔,當然,Microsoft SQL Server Compact目前是不支援的。

2010年3月16日 星期二

終於,微軟釋出Windows Phone Developer Tools(CTP) Silverlight開發套件

從2008年就喊得震天價響的Silverlight Mobile開發套件,終於終於終於在MIX 2010公布了,Silverlight的官網也跟著更新了,關於Silverlight for mobile部分,再也不是虛無飄渺空空蕩蕩的一堆廣告文字,現在你可以扎扎實實地download到相關的開發套件了。

和我們猜測的差不多,你可以用VS2010與Blend來開發WP7應用程式,整個開發方式都是透過managed code,支援Multi-touch, Camera, microphone, DRM, IIS Smooth Streaming, ... etc. 果然如同先前Charlie Kindel提到的,整個開發方式讓原有的Silverlight開發人員感到非常的喜悅。

隨著進行中的MIX2010,我們將會看到更多的訊息釋出,同時,微軟也搭建了一個marketplace網站,將會如同iPhone一樣,讓開發人員可以上傳自己開發的應用程式,並且在市集上銷售,我當場就註冊了一個帳號(但居然要付錢!!!有點敗興)

總得來說,消息面是令人愉快的,那實際開發之後的感想呢? 很抱歉,我還沒動手,晚一些再和大家分享。

相關套件的下載位置先釋出:
Windows Phone Developer Tools CTP

順帶一提,Silverlight 4 tools for VS2010RC也釋出了..
Microsoft Silverlight 4 Tools for Visual Studio 2010 RC


補充報告:
安裝完了測試之後,整個開發方式和Silverlight幾乎一樣,從下圖中可以看得出來:

呵呵,恭喜了,各位Silverlight pioneer,你沒選錯投資的開發工具。

下載安裝畫面:

2010年3月3日 星期三

如何建立Silverlight 3中的Action, Behavior, 與Trigger...

在上個月的RunPC以及這篇文章當中,我們介紹了如何使用Silverlight的Behavior技術,也看到了這個技術對於開發人員來說的價值與意義。

在本月(2010年3月號)的RunPC當中,我們則繼續討論了如何來建立Silverlight的Action, Behavior, 與Trigger...等元件,其中有一些說明與教學影片,讀者可以參考底下網址:http://www.runpc.com.tw/content/main_content.aspx?mgo=194 &fid=E02