最近在MSDN論壇上看到有人發問一個問題:「要如何在手機上畫出3公分的直線?」。
乍看之下這應該是一個再也簡單不過的事情,啊不就拿尺來量一量就好了!? 連小學生都會的事情啊~~(被打)
不過事情往往沒有想像中那麼簡單.... 這個問題牽扯到不同裝置有不同的解析度,所以,同樣都是三公分,但是在不同的裝置上面的像素可是大不相同的啊~~
[Web Service] 透過SOAP Extension進行訊息的加/解密 – (下) 淺析SOAP Extension運作方式
前面的兩篇文章簡單的介紹了基本的Web Service與Client端與SOAP Extension的加/解密應用,而這次,我們就簡單的來針對SOAP Extension的運作方式來做點更進一步的瞭解。
[Web Service] 透過SOAP Extension進行訊息的加/解密 – (中) 實作SOAP Extension
這次我們要真正的動手實作出一個可以將訊息進行加/解密的SOAP Extension功能。
[Web Service] 透過SOAP Extension進行訊息的加/解密 – (上) 撰寫簡單的Web Service與Client端
雖然Web Service早就不是什麼新玩意兒,透過SOAP來進行資料交換/傳輸也不是什麼新奇的科技,不過還是有個和Web Service相關的「玩具」想要和大家分享一下。
[Kinect SDK] 獨樂樂不如眾樂樂 - 取得並顯示多個玩家的骨架資訊
有不少朋友問到關於處理多個玩家的骨架資料的問題,其實透過Kinect for Windows SDK,搭配LINQ語法,要取得並顯示多個使用者的骨架資訊是非常簡單的喔!!
這篇文章就以KinectSkeletonApplication作為藍本,加上SoulSolutions.Kinect.Controls裡提供的SkeletonControl控制項,簡單的示範一下怎麼同時捕捉並顯示兩位玩家的骨架資訊吧!!
[C#][Silverlight] 透過LINQ實作兩集合間的交集與差集比對
在還沒有LINQ的時代,要比對兩個集合間的交集、聯集、差集關係的時候,通常得透過迴圈來實作,不過,如果改用LINQ,那就又是只要一行就可以解決啦!!
這篇文章就簡單的利用LINQ提供的Enumerable.Intetsect()方法和Enumerable.Except()方法來玩個簡單的小Demo~
[Kinect SDK] 方便的2D骨架WPF控制項介紹 - SoulSolutions.Kinect.Controls.Skeleton
日前參加了點部落與微軟舉辦的Kinect for Windows創意應用競賽,在研究和實作的過程中看了不少國內外高手的作品之後,驚然發現 ~ 咦!?怎麼沒有一個像是Xbox360上的遊戲一樣,可以用比較接近人形的形狀來輕鬆顯示使用者骨架的控制項呢?
[C#][Silverlight] 透過LINQ取得不重複的隨機數值 - 不騙你,只需要一行程式碼!!
日前在專案中有需要從題庫中隨機挑選題目的需求,加上最近在MSDN論壇看到有人在問隨機取得不重複的數值的問題,為了避免之後又不小心忘記這個方便的寫法,特別寫文章來紀錄一下。
[Kinect SDK] 建立支援Kinect的WPF應用程式(三) - 初探身體感應功能
經過了前面兩章的暖身,這次我們就要來對Kinect最威能的部份-「身體感應」來做個基本的了解啦!!不然只拿Kinect來拍照的話對Kinect來說可是一種天大的污辱啊~~
[Visual Studio] 應用程式佈署大作戰 - 為Setup Project加入自訂的對話視窗以修改App.config的內容
當我們在開發應用程式的時候,常常會把應用程式的設定值放在App.config檔中。不過,如果是要發佈出去的時候,預設的設定值就不見得適用於每個使用者了。這個時候,如果能讓使用者在安裝我們的應用程式的過程中,可以透過介面,就能輕鬆的修改App.config的內容,要比要求使用者在安裝完應用程式之後,自行以記事本去修改App.config檔來得要親切而且專業得多。不過,該怎麼做呢?讓我們看下去!!
[Kinect SDK] 建立支援Kinect的WPF應用程式(二) - 嫌麻煩嗎?那就偷懶吧!!
在上一篇文章中跟大家介紹了透過Kinect SDK取得攝影機擷取到的畫面的方式。雖然沒寫多少程式碼,不過,可能會有朋友覺得只是要拿個畫面而已,就得做這麼多事、寫這麼多程式是一件很累人的工作....(好吧,其實是我自己懶)
所以今天就要來介紹幾個可以加速開發的第三方元件,Let's Rock!!
[Silverlight][C#] 要顯示哪些欄位,給使用者決定!! - 在執行時期動態的顯示/隱藏DataGrid中的欄位
今天在MSDN論壇回答問題的時候,看到有人在問說要怎麼在執行時期動態的顯示或是隱藏欄位,雖然我不清楚他確切的需求,不過基於好奇心和好勝心作怪,我還是寫出了下面這個範例~
有興趣的朋友可以參考看看,如果有想到什麼情境下或是這樣的功能很適合用在什麼地方的話,也歡迎留個言交流一下喔!!
[WPF][C#] 讓你的應用程式無國界~WPF多國語系實作系列之四 - 使用XmlDataProvider
除了前面介紹的三種方式之外,這篇是這一系列文的最後一種方式了。只要簡單的透過XmlDataProvider和強大的DataBinding的功能,就一樣可以做出有多語系功能的WPF應用程式。另外,這個方式也一樣能達到執行時期動態的語系切換功能喔!!
廢話不多說,直接開始吧!!
[WPF][C#] 讓你的應用程式無國界~WPF多國語系實作系列之三 - 使用ResourceDictionary
已經用過WPF/Silverlight的朋友們應該對於ResourceDictionary不陌生。不過,ResourceDictionary除了用來存放Style、Storyboard等等資源之外,也可以拿來實作多國語系喔!!而且透過ResourceDictionary的方式來實作多國語系,一樣可以達到執行時期動態的語系切換功能!!
廢話不多說,以下來來跟各位分享這個簡單的方式,也歡迎有興趣的朋友跟著一步一步做看看喔!!
[WPF][C#] 讓你的應用程式無國界~WPF多國語系實作系列之二 - 使用ObjectDataProvider搭配Resources.resx
習慣.Net Framework平台的朋友們應該對Resources.resx檔不陌生,在一般的Windows Form應用程式或是ASP.Net應用程式中都可以透過它來實作並且輕鬆的維護不同語系中所需要使用的資源;當然,在WPF中也可以這樣使用,這一篇就來跟大家分享在WPF中使用Resources.resx搭配資料繫結的好幫手-ObjectDataProvider來做到多語系應用程式的實作!!而且從這個範例開始,我們要來實作執行時期動態的語系切換功能!!
[WPF][C#] 讓你的應用程式無國界~WPF多國語系實作系列之一 - 使用LocBaml.exe
多語系的實作在各種平台和應用程式間一直是個很重要的環節,當然對WPF來說也不例外,接下來的幾篇文章,就要跟大家分享在WPF中,實作出支援多國語系的幾種方法。
第一篇就由在MSDN上也查詢得到的方法-透過LocBaml.exe來實作出多國語系的WPF應用程式來打頭陣。
[WPF][C#] 當不需要華麗的使用者介面或是需要啟動參數時....!? - 開啟WPF的Console視窗
如果我們使用Visual Studio中內建的專案樣版建立WPF專案,並且按下F5執行,就會看到專案中預設的MainWindow直接跳出來,這是很合理,也很合邏輯的一件事(這不是廢話嗎?!)。不過,寫過Windows Form應用程式或是寫過Windows Console Application的朋友們可能就會好奇:「我如果想在命令列輸入一些啟動參數的時候怎麼辦?」,抑或:「我在WPF中可以使用Console.WriteLine()並且有個簡單的介面追踨一些變數的值嗎?」;甚至是:「如果我想要做一個精簡模式,直接從命令列下指令,就能完成特定的工作;這樣WPF辦得到嗎?」。關於上面提到的問題,很開心的告訴大家:當然可以!!
[WPF][C#] 跟我一起玩ObjectDataProvider - 可以動態抽換資料來源的ObjectDataProvider
最近設計x程式社團的林星同學提到關於使用ObjectDataProvider來進行資料的繫結的方式,幫不上什麼大忙的我,只能寫些入門的小範例來看看能不能有所幫助,就透過這個小範例來讓有興趣的朋友們先對ObjectDataProvider有基本的認識吧!!
[WPF][C#] 不要給我醜醜的空白列 - 讓DataGrid在沒資料的時候可以顯示自訂的內容
通常我們在使用DataGrid顯示資料的時候,大部份的情況下都會透過資料繫結(Data Binding)來完成,配合設計師設計出來美美的樣版,就能以比較有質感一點的方式見人(雖然說穿了還是一個DataGrid)。
不過有時候會遇到一個情況:當使用者操作資料,或進行查詢之後,發現繫結的對象已經被清空了,而DataGrid還是會很開心的以預設的樣版顯示一條空白列,對有的人來說,看了就是會覺得怪怪的。所以,這次就來跟大家分享一個可以在繫結的對象被清空的時候,還能顯示自訂內容的一個替代方法。
[IADP] 抄傢伙~準備上工啦 - 下載及安裝IADP SDK
在[IADP] Intel AppUp Developer Program簡介一文中簡單的介紹過了IADP,這次就來跟各位朋友們分享進行開發前最重要的步驟:下載及安裝IADP SDK。
[Silverlight][WPF][C#] 我要的是控制項,不是資料啊!! - 正確取出經由資料繫結所產生的控制項的方式
我們常常透過由ItemsControl衍生出的的控制項,透過Silverlight或WPF強大的資料繫結功能,顯示一整個集合的資料。對於設計師來說,使用Blend來設計資料被繫結到某個控制項中的外觀,是再簡單也不過的。但是對於程式設計師來說,如果是對Silverlight或WPF還不夠熟練的話,要從程式中去取出某個被繫結後的控制項,可能就會在剛開始的時候碰得滿鼻子灰了。
[WPF][C#] 什麼!?動畫也能這樣玩? - 透過C#播放定義在DataTemplate中的動畫
今天在公司遇到一個神奇的情況:我們的HIE在ListBox的DataTemplate中定義了一個Storyboard,而負責撰寫程式的同仁在試著播放該動畫的時候,試了好幾種方式,就是沒辦法順利的針對某一個ListBox中的Item播放動畫....
[Silverlight][C#] 給點顏色瞧瞧!!~在C#中使用不同的方式來設定顏色–Silverlight篇
在[WPF][C#]一起來玩色吧!!~在C#中使用不同的方式來設定顏色一文中介紹了怎麼使用C#來設定顏色,但是回過頭來看看Silverlight~~
啥密!!?BrushConverter?沒有!!ColorConverter?沒有!!沒錯!!!!在Silverlight4裡面還沒有這些東西(而且目前我在Silverlight 5 Beta中也還找不到這兩個東西)~
既然原生的資源中沒有,身為一個把寫程式當家常便飯的工程師,那就自己來動手寫一個吧!!~
[MVVM] MVVM進行曲:使用MVVM Light Toolkit –【Intro】MVVM Light Toolkit簡短介紹與安裝
在[MVVM]初步認識MVVM設計模式一文中,簡單的介紹了MVVM設計模式,相信比較行動派的朋友們應該都很迫不及待的想要動手透過MVVM設計模式來讓自己的系統架構和程式碼更加的乾淨漂亮了吧!!
在上戰場殺敵之前,必需把「傢私」準備好,這一篇文章就來跟大家分享要進入MVVM設計模式之前所需要進行的準備。
[WPF][C#] 一起來玩色吧!!~在C#中使用不同的方式來設定顏色
通常負責程式設計的工程師和負責使用者介面設計的設計師在對顏色的定義上應該有極大的差異(眼前的黑是哪個黑?你說的白是什麼白?天空藍?)
這個時候,能有一個共通的語言或是溝通方式就顯得特別的重要啦~而設計師們習慣使用的,一般應該都是HTML色碼;剛好在XAML中也是使用類似HTML色碼的格式,只是多了一個Alpha Channel,但是要透過C#呢?
所以,這次就來介紹怎麼在C#中,讓程式設計師也能輕鬆的使用各種不同的方式來設定顏色!!
[Silverlight][WPF] 當滑鼠點選到TextBox時自動選取所有文字的方法
有時候為了考量到使用者操作時的便利性,會希望當使用者點選到文字輸入欄位時,會自動選取該欄位裡面所有的文字,以便編輯,這件事在Silverlight中非常容易就可以完成了,只要透過TextBox的SelectAll()方法就可以達成。
在WPF中就不太一樣囉!!
[WPF][C#] 沒錯!!XAML寫的UserControl也能當作滑鼠游標!!
通常在實作系統的時候,為了配合不同的需求,可能會需要自訂游標的形狀,雖然WPF中有Cursors類別可以用,但是提供的游標仍然有限,所以用圖片來當作游標,或是用XAML寫出來的UserControl來當作游標,似乎就成為不錯的選擇。
這次就來介紹怎麼在WPF中覆寫原來的系統游標,以自訂的游標取代。
[C#] 利用LINQ和ForEach方法取代foreach
我們常常會使用C#中的foreach函數,對集合中的每個目標進行操作。但是,其實也可以使用LINQ搭配List
[WPF] 快速為WPF換裝 - 使用WPF Themes
話說,WPF從3.0到現在的4.0也已經發展了將近有五年的時間了,堪稱是微軟邁向RIA的第一步,不過,近年來感覺微軟對WPF/E也就是現在的Silverlight投注的關愛似乎比較多那麼一點點,不只是Toolkit更新的速度比較快,連Theme都比WPF多。
[Silverlight][C#] 將Web.config的內容儲存在IsolatedStorage以讓OOB的Silvelright存取的方式
在[Silverlight][ASP.Net][C#]讓Silverlight也能讀取web.config的小撇步一文中跟大家介紹過了怎麼透過ASP.Net存取Web.config的內容,並且讓Silverlight也能存取得到裡面的值,不過最近有人跟我說這個方式行不通,一問之下,才發現原來他的環境不是純的Silverlight,而是透過OOB模式執行,那一定行不通的啊~~所以這次就來教個偷吃步,讓OOB的應用程式也能把Web.config中的內容存起來,以供後續使用的方式。
[Silverlight][C#] 利用C#做到Storyboard的再利用
常在Silverlight專案中,如果是經由Desinger透過Expression Blend拉出來的動畫Storyboard,一般應該都會直接把每個Storyboard的TargetName直接設死,所以如果有四個物件,要套用同一個動畫,可能就得要拉四次,不過其實這個是可以透過程式的協助來解決的,因為Storyboard(甚至Storyboard的Children)的Target,都是可以在執行期間重新設定的。
[WPF][C#] 在WPF中使用LinqToXml讀取XML並且Binding到DataGrid
其實使用LinqToXml要把資料顯示在WPF的DataGrid中的話是非常簡單的,只要短短的幾行Code就行了,而且不只讀取,連回寫的功能要做起來都很簡單!!
[WPF][C#] 在WPF中內嵌WindowsForm控制項 - 使用WindowsFormsControlLibrary
在[WPF][C#]在WPF中內嵌WindowsForm控制項一文中為各位介紹了直接在WPF中使用XAML來嵌入Windows Form控制項的作法,不過不是每個人都喜歡寫XAML,而且有時候會需要把已經存在的Windows Form應用程式嵌入到WPF中,所以這次就來跟大家介紹怎麼使用參考dll檔的方式,把dll中的Windows Form加到WPF中。
[Silverlight][WPF][C#] 使用LINQ取得已勾選的CheckBox
通常如果在應用程式裡要以程式取得被勾選的CheckBox有哪些,一般應該都會放個迴圈下去跑,把所有的CheckBox爬過一次,逐一比對是不是有被勾選,不過,有個更簡單的方式!!
用LINQ!!
[Silverlight][C#] 在Silverlight中取得列舉型別中的所有項目並Binding到下拉式選單
在C#中可以很簡單的透過Enum.GetValues()或是Enum.GetNames()來取得列舉型別中項目的值或是名稱,但是在Silvelright中想要使用同一招的話就會發現,咦!?怎麼行不通了!?Silverlight中的Enum完全不提供Enum.GetValues()和Enum.GetNames()這兩個Method啊!!!~~~
[C#] 使用LINQ取出列舉中的所有項目
在C#中要取出列舉中的項目的話,可以使用foreach來達到,透過Enum.GetNames()和Enum.GetValues()方法可以分別取出列舉中每個項目的名稱或是值。
要更直覺的使用的話,還是將列舉轉成List
[WPF][C#] 在WPF中內嵌WindowsForm控制項
在開發WPF的專案時,有時候可能會礙於平台的限制或是使用的語言及類別庫的限制,部份功能還是得透過Windows Form來或是某些Windows Form控制項來實作,可是整個系統的外觀已經是既定的WPF了,那要怎麼把Windows Form整合進來呢??
[Silverlight][WPF][C#] 在VS2010中為Storyboard增加Completed事件
有的時候我們為了讓使用者能有比較好的使用者體驗,所以會希望某些動作要在某些動畫播放結束之後再執行,要做到這樣子的功能,在Expression Blend中是相對比較難做到的(畢竟這是Developer的工作),但是在VS2010中要做到,就真的是簡單到一個不行了!!
[WPF][C#] VisualStateManager.GoToState在非UserControl中起不了作用的替代方案
隨著VisualStateManager和State的出現,讓我們在實作使用者介面的狀態轉換上省了很大的工夫,不過VisualStateManager.GoToState這個Method在Silverlight和WPF的UserControl中都可以運作得很正常(因為Silverlight的MainWindow也繼承了UserControl)。
但是,如果在WPF的Window控制項裡面要利用這個方法來切換State的話,那可是你呼叫它一百次它都不會理你的,你不會看到畫面有任何反應,也不會有任何Exception被丟出來,不過,如果透過GoToStateAction的話倒是可以運作得很開心。
難道說在Window控制項中就不能透過程式進行State間的轉換了嗎!?
[Silverlight][C#] 自訂輸入規則驗證
通常我們都會針對應用程式中的文字輸入欄位做一些檢核或是驗證的動作,如果要驗證的欄位有透過DataBinding來做存取值的話,可以透過BindingValidation相關功能進行資料驗證的動作;但是,如果要驗證的欄位完全沒有做DataBinding的話怎麼辦呢!?
既然沒有自動的方法,那我們就自己來手工打造一個自訂的驗證機制吧!!
[Silverlight][WPF] 動手實作Behaviors - 動手實作 Behavior
經過之前的介紹,相信大家已經對Behavior有了初步的概念,但是對於怎麼寫出一個自己的Behavior,應該還是比較沒Fu吧!?
這篇就來跟大家介紹Behavior程式的結構,順便帶大家來實作一個「能用滑鼠滾輪控制放大縮小倍率的放大鏡Behavior」吧!!
[Visula Studio][Silverlight][WPF] 給VS2010用的Action、Behavior和Trigger樣版
通常寫要給WPF或是Silverlight用的Action、Behavior還有Trigger都會是比較偏工程師的工作,但是VS2010預設沒內建這些檔案的樣版,折衷的作法一般就是先透過Blend開出檔案,再以VS2010編輯,但是每次都這樣太累了。
我幫有需要的人準備好了可以直接安裝的Extension檔,以後就能直接建立這幾種檔案啦!!
[WPF][Silverlight] 你不能不了解的 DependencyProperty
在WPF和Silverlight出現之前,我們常常藉由在class中撰寫Property,來供class外部存取class中的變數;但是在WPF出現了之後,也帶出了DependencyProperty這個全新的玩意,它的運作機制和我們之前所熟悉的CLR Property(或稱.Net Proprety,之後本文中我們統一使用CLR Property這個名詞)可是有極大差異的....
[C#] 跟著Ouch寫程式 – 第二課 class中的劇本 : Method
經過了上一課,相信大家對基本的程式邏輯都有了基本的認識,而我們在前言篇有講到,在C#中,通常一個Class裡面會有幾個固定的成員,有用來描述屬性的Property和Field,還有一個是專門處理「動作」的,也就是我們今天要講的主角「Method」(方法),但是在其他語言裡面(像是Java和ActionScript),它被叫做Function(函式),其實指的都是同一種東西。
[WPF][Silverlight] Binding in WPF and Silverlight – (三)Binding的方向和Converter
上次介紹了超簡單的Binding設定方式,而這次就來好好的探討一下Binding資料流方向的差異吧。
[C#][ASP.Net][Visual Studio] FluorineFX Flash Remoting Web Application Template for VS2010
之前因為專案的需要用到Flash Remoting的關係,接觸到了FluorineFX,當時用的Visual Studio版本是2008,可以使用FluorineFX提供的專案樣版建立專案,但是最近發現,咦!?在Visual Studio 2010裡面怎麼沒有FluorineFX的專案樣版可以選了??
[C#] 跟著Ouch寫程式 – 第一課 程式邏輯
上次簡單的介紹過了C#中Class的基本結構,接下來再來介紹幾個重要的觀念。通常,「程式」都是被用來處理大量性或是重複性很高的動作,而且這些動作的進行是有固定的「順序」或是「條件」的,而那些順序和條件,就是所謂的「邏輯」。
[WPF] GridLengthAnimation - 讓Grid的Row和Column大小改變也能套用動畫
在執行期動態的改變Grid容器中某個Row或是Column大小的功能應該是個蠻常見的情況,但是有時候我們希望由程式來調整Row的高度或是Column的寬度時,可以很輕鬆的透過程式來解決,但是,如果在改變的時候,要套用動畫呢??
[WPF][Silverlight] Binding in WPF and Silverlight – (二)使用Visual Studio和Blend
上篇講到了怎麼使用C#進行Binding的設定,這次就來說說透過工具產生的XAML就做到Binding設定的方法。
其實要透過XAML進行Binding是非常的簡單的,只要透過Visual Studio 2010或是Blend 4,滑鼠點個幾下,就可以設定完成,我們沿用上次的範例,分別針對以Visual Studio 2010和Blend 4來介紹Binding的設定方式。
[WPF][Silverlight] Binding in WPF and Silverlight – (一)使用C#
WPF和Silverlight從2.0版之後就一直針對Data Binding的部份不停的在做改善,現在甚至可以透過Visual Studio 2010或Blend 4.0在設計模式裡透過幾下滑鼠的點擊就可以完成Binding的設定。
所謂的Binding呢,中文的翻譯是「繫結」,有玩線上遊戲的朋友應該也都會聽過一個名詞叫「綁定」,其實指的都是同一個英文單字—Binding,意思就是把兩件東西連結在一起。
- 1
- 2