發表文章

Gif in Windows phone 7

圖片
今天突然想到,在以往WM5/WM6系列,在系統上是無法正常的顯示Gif圖形的,那Windows Phone 7呢?簡單測試了一下,利用下面的XAML去測試 殘念,還是無法顯示;後來搜尋了一下,幸好有好心的達人有做出相關的解決方案,在 論壇中的這篇 有提到一個方式,是使用CodePlex上的這個解決方案, .NET Image Tools ,就來測試一下吧,首先把組件下載回來之後,必須要加入相關的參考,我這邊只有用到Gif檔案,所以加入的參考是這些 之後再畫面上簡單的只放了一個按鈕,相關程式碼會像是下面這樣 using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; using System.IO.IsolatedStorage; using System.Windows.Media.Imaging; using ImageTools.IO.Gif; using ImageTools.Controls; namespace RunDemo { public partial class MainPage : PhoneApplicationPage { // Constructor public MainPage() { ImageTools.IO.Decoders.AddDecoder (); InitializeComponent(); } private void button1_Click(object sender, RoutedEventArgs e) { ImageTools.Image img = new ImageTools.Image(); ...

Extension Method in C#

圖片
在.Net中,有許許多多的類別可供使用,那如果想要在已有的類別上去新增自己做的Function,應該要怎麼做呢? 這個時候我們可以撰寫擴充現有類別的程式碼,例如想要幫string來新增自訂的方法,可以加入以下的類別 namespace StringExtension { public static class Extension { public static string ShowMachineName(this string str) { return Environment.MachineName; } public static string AddMessage(this string str, string msg) { return "Hello : " + msg; } } } 要特別注意的地方在下圖紅色框框的地方 要注意的地方是 自行撰寫的類別比需是 public static 的 類別中的function必須是 public static 類型 function的第一個傳入參數必須要加上 this 的關鍵字,而隨後跟著的是要擴充的類別名稱 需要傳入參數的話,則在function中的第二個參數加入想要傳入的參數型態以及名稱 這樣子,就可以幫現有的類別加上擴充方法了;有部分有沒有覺得很奇怪呢?為什麼擴充方法中,第一個傳入的參數是想要擴充的類別型態,又宣告了一個參數,但是都沒有用到阿?這參數是甚麼?這個來設個中斷點,看一下下圖應該就很清楚了 原來第一個參數的內容會是"執行個體"的內容。

ApplicationBar Demo (以XAML的方式建立)

圖片
在上一篇,有提到利用程式碼的方式來建立ApplicationBar,是不是感覺有點冗長呢?同樣的功能我們可以很輕易的用XAML Code來做到;其實在專案一建立的時候,預設就會將相關的程式碼加在XAML中,像是下圖的地方 這個時候就可以發現XAML的長處了,先來看看修改後XAML的部分 < Grid x : Name = " LayoutRoot " Background = " Transparent " > < Grid . RowDefinitions > < RowDefinition Height = " Auto " / > < RowDefinition Height = " * " / > < / Grid . RowDefinitions > < ! - - TitlePanel contains the name of the application and page title - - > < StackPanel x : Name = " TitlePanel " Grid . Row = " 0 " Margin = " 24,24,0,12 " > < TextBlock x : Name = " ApplicationTitle " Text = " ApplicationBar Demo " Style = " {StaticResource PhoneTextNormalStyle} " / > < TextBlock x : Name = " PageTitle " Text = " XAML " Margin = " -3,-8,0,0 " Style = " {St...

ApplicationBar Demo (以程式碼的方式建立)

Note:目前開發工具尚未RTM,此版本使用的開發工具為Beta版本,與RTM版本可能略有差異 在Windows Phone 7的環境中,在"功能表的部分也做了變更,現在除了傳統的文字功能表之外,也加入了ICON,而今天就來看看這個部分,主要是操作ApplicationBar與ApplicationBarIconButton,而建立的方式可以由XAML的介面建立,也可以純用程式碼來做,這一篇先來看看程式碼的部分 namespace ApplicationBarDemo { public partial class MainPage : PhoneApplicationPage { TextBox tbSelectedItem = null; Button btnShowAppBar = null; // Constructor public MainPage() { InitializeComponent(); this.ApplicationTitle.Text = "ApplicationBar Demo"; //set up content grid RowDefinition RowOne = new RowDefinition(); RowOne.Height = new GridLength(100, GridUnitType.Pixel); ContentGrid.RowDefinitions.Add(RowOne); RowDefinition RowTwo = new RowDefinition(); RowTwo.Height = new GridLength(100, GridUnitType.Pixel); ContentGrid.RowDefinitions.Add(RowTwo); RowDefinition RowThree = new RowDefinition(...

Tech.Days 2010

圖片
各位朋友們, Tech.Days 2010來了,有興趣的朋友記得快報名參加喔~

How to get rowindex / column of a grid control in silverlight?

圖片
這是在國外論壇上看到的一個問題,連結在 這邊 ,測試了一下之後,可以利用下面的方式來抓取;例如做了一個像是下圖的介面 項目的列表是放在Grid容器當中,XAML大致上像是這樣 在點選之後要去抓取被點選項目的相關Index,首先要去Handle Grid的滑鼠點選事件,例如 ContentGrid.MouseLeftButtonDown += new MouseButtonEventHandler(ContentGrid_MouseLeftButtonDown); 之後利用Grid.GetRow來達成,例如 void ContentGrid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { //throw new NotImplementedException(); int rowindex = Grid.GetRow((FrameworkElement)e.OriginalSource); }

Resource.designer.vb could not be found

今天開啟VS2008要新增Windows Service專案類型時,突然彈出一個找不到檔案的錯誤訊息,從錯誤訊息看起來,大致是說找不到resource.designer.vb相關的檔案,以至無法建立專案;就這樣,Service類型的專案離我而去.. 找了一段時間,測試過重新設定Visual Studio的環境設定,但是無效,瞎搞之下找到了這篇 Missing an item template in Visual Studio 2005? Try this... 開啟Visual Studio command prompt之後,執行 devenv /installvstemplates 讓專案樣版重新安裝一次,之後開啟Visual Studio,總算是回復了;如果有同樣症頭的朋友,可以試試是否可以解決你的問題了。