發表文章

目前顯示的是有「WPF」標籤的文章

LaunchMan : start and check version and update 自訂啟動更新程式

圖片
  說明: 這支程式的用途就是和你的程式擺在一起,然後將這支程式設定成你的程式啟動用。 這支程式啟動時,會依照 INI檔的設定去幫你檢查程式版本。 如果有版本異動時,會提醒使用者要更新程式。 支援: 支援HTTP和FTP協定,可以依照你的需求把更新檔案放在WEB server或是FTP server上 環境: 僅能運行在Windows 下 由 dotNet 4.5 開發,需要作業系統支援 dotNet 4.5 的程式執行, 如果沒有,可以 下載安裝 dotNet FrameWork 4.5 套件 。 下載: LaunchMan 範例: 我有一個 kiosk 程式 main.exe 放在  C:\APP\KioskPatch 桌面上有個程式捷徑連結到 C:\APP\KioskPatch\main.exe 現在,我們把 LaunchMan 程式和這個 Kiosk 程式放在一起 (不放一起其實也可以,這樣比較好管) 修改桌面捷徑改連結到 C:\APP\KioskPatch\LaunchMan.exe 而更新檔案 有兩個 一個是 version.txt , 另一個為壓縮檔( 例如KioskPatch.ZIP ) 都放在我的網站 www.mycomp.com.tw/Patch/down/ 下 然後在 C:\APP\KioskPatch 下也放一個 version.txt 這兩個 version.txt 內容要不一樣,當內容不同時,才會啟動更新 然後,修改 INI 檔案(範例在下方) [Application] ;使用的背景圖片,自訂圖片,該圖片必須有DPI資訊才能正常顯示 LogoPicture=splash2.png ;淡入效果時間 ;Second unit FadeINDuration=3 FadeOutDuration=1 ;讓背景透明 BackgroundTransparency=true ;顯示訊息文字顏色/位置 MessageTextColor=#0000FF MessageLeftPosition=10 messageTopPosition=130 Title="Kiosk Sell System with .Net" TitleTextColor=#FF0000 TitleLeftPosition=50

關於WPF裡面動態圖片(Animate Image)和靜態圖片(Static Image)並存問題

圖片
要在 WPF 程式上顯示一般圖片(BMP、JPG、PNG、GIF..) 都不是甚麼太大問題,大概像下面一樣用 image 標籤即可。 <Grid>     <Grid.ColumnDefinitions>         <ColumnDefinition/>         <ColumnDefinition/>         <ColumnDefinition/>     </Grid.ColumnDefinitions>     <Grid.RowDefinitions>         <RowDefinition/>     </Grid.RowDefinitions>     <Image Grid.Column="1" Grid.Row="0" Source="D:\MyImages\Taiwanmap.jpg"/> </Grid> 但遇到動畫圖檔 GIFa 就是一件麻煩事了。 這個 image 標籤遇到 GIFa 就只能顯示第一張畫面,然後也不會有動畫。 <Image Grid.Column="1" Grid.Row="0" Source="D:\MyImages\ cutecoupletogether.gif "/> 我的目的是需要的是在同一種圖像元件標籤下,能夠同時顯示動畫或是靜態圖片的方法。 也就是說如果我要做一個圖片展示區或清單(動態生成),就很難去依照圖片類型一直去更換樣版標籤,所以我希望一種標籤就能夠解決問題。 能夠支援的標籤類型當然不是只有 Image,還有很多種方法: (底下標籤都會加上 Grid.Column 和 Grid.Row 屬性,因為我會放在上面 Grid 版面上的) 1、 MediaElement 標籤 ,他也可放置靜態圖片或動態圖片,但這個標籤早期只能支援URI方式提供來源,不過 .NET 4.0後 好像就改成可以放置路徑。 我試圖在 MediaElement 放置 gif 圖片 &

WPF 的 MVVM 測試

圖片
甚麼是WPF WPF(Windows Presentation Foundation) 簡單的說是一種把UI跟程式碼拆開來做的windows應用程式,早期UI的設計與動作都會和程式碼扯上關聯(因為程式碼寫在UI裡面),導致做美編的人員要動到畫面設計時,還得小心考慮到每個物件裡面的程式碼。而微軟在2006年的.NET Framework 3.0以後,重新去定義Windows APP設計的方向與概念而訂製了 WPF 架構。 我想有在設計android程式的人大概見怪不怪了,畢竟android程式的設計就是如此的,UI跟程式碼本來就是分開在設計的。當然習慣於舊式Coding的程式設計師還是會有點難以適應的,因為它不是『直覺』去設計程式的,而是透過『分析』→『模組化』→『開發設計』這種方式去進行開發的。 雖然WPF也可以用比較傳統方式去開發(把各種程式碼寫在UI的片段下)。 但由於『模組化』才是WPF的精隨 ,所以一開始就栽進 M-V-VM 的環境,對於將來開發會比較有幫助的。 網路上也有不少資料可以參考,我這邊就以我 自己的想法去解釋 ,如一開始的圖片。 Model : 主要負責資料結構 (Data Model:Data Structure)的建立或與資料庫連結的存取(DAL;Data Access Layer)的各類模組化都是由這一層負責處理。 View : 主要負責畫面的設計與成型 ,它是一個 .xaml 的 XML 描述檔案,這個描述檔案描述了畫面個元件如何擺放與屬性等,通常它會搭配一個 .cs 的程式碼檔案,雖然可以把程式碼寫在 .cs 裡面,但為了把運算邏輯分離,所以盡可能不要寫入任何與畫面無關的程式碼,甚至根輸入有關的互動運算邏輯也不應該寫在這裡。 ViewModel : 這個才是View的邏輯核心 ,通常一個View會搭配一個ViewModel,而這個ViewModel負責 View 的資料保存(輸入或是顯示用)與畫面元件的互動或是指令,例如按鈕的行為、輸入資料後的自動動作等等,都是在這個模組去完成。透過 View 與 ViewModel 進行結繫(Biding)的方式,也可以讓 View 接收 ViewModel 傳回來的事件要求。 基本型: 假如我需要一個可以輸入產品名稱、數量、成本 與計算小計的功能。 所