1. 程式人生 > >關於WPF和Windows Form的區別理解(一)

關於WPF和Windows Form的區別理解(一)

最近專案要上線,處於緊張的測試中,一整天都在盯著電腦螢幕上那些晃動的波形做測試,excel中記滿了密密麻麻的測試資料,看得眼睛都疼了。把眼睛從電腦螢幕上移開,實在是看不下去了。可上班時間,又不能無所事事,所以一邊讓電腦中的測試程式執行著,自己則拿起桌上的《深入淺出WPF》看起來。看書應該比看電腦會讓眼睛舒服點吧。

因為最近做了比較多的自定義控制元件,對控制元件比較感興趣,相對其有深入的瞭解,所以就直接翻到深入淺出話模板一章。其實我是從去年下半年因為專案需要才開始接觸WPF,只是用到時才查一下資料或者看一下別人寫的Demo,並沒有過系統的學習,因此對其中很多的概念方法都不甚瞭解。除了WPF介面效果看起來更炫些外,我也也不是很清楚WPF和Winform真正的區別在哪。不過這種書中似乎將這一點講得很透徹,僅是我看的這一章,講得WPF和Winform控制元件的區別,我覺得其精髓便在於資料演算法與控制元件形式的耦合性的區別。Winform的控制元件內部邏輯和資料結構都是封裝好的,其外形也只開放出部分屬性供程式設計師來修改,想要擴充套件控制元件功能或部分外觀,必須重新建立控制元件的子類或建立使用者控制元件,其耦合性很強。而WPF則可以通過Templete來解決該問題,降低了資料演算法與控制元件展現形式的耦合。WPF的Templete可以分為兩部分,一部分是ControlTemplete,用來修改控制元件外觀及操作邏輯,一部分是DataTemplete,用來修改資料的表現形式。比如說修改ControlTempl,可以講一個ProgressBar變成溫度計的式樣;而修改DataTemplete,則可以讓原本是文字表示的資料變為以圖片動畫表示。

當然,WPF和Winform的差別還有很多,目前我所掌握的不過是將書中的思想搬到這裡而已,相信在以後的學習與應用中,自己將會有更深入的理解,屆時再與大家分享。

相關推薦

關於WPFWindows Form區別理解

最近專案要上線,處於緊張的測試中,一整天都在盯著電腦螢幕上那些晃動的波形做測試,excel中記滿了密密麻麻的測試資料,看得眼睛都疼了。把眼睛從電腦螢幕上移開,實在是看不下去了。可上班時間,又不能無所事事,所以一邊讓電腦中的測試程式執行著,自己則拿起桌上的《深入淺出WPF》看

javaC++的區別總結

  Java從誕生起就一直和C++有著密不可分的關係,但是Java和C++之間還是存在著細微的差別的,這些差別一方面體現了Java在優化C++語言方面做出,那麼本文就談談C++和Java之間那些區別,筆者假設你對C++有一定程度的認識。本文的組織思路是首先是對兩

WPF 的 MVVM 的分析理解

第三步:新增執行動作和“INotifyPropertyChanged”介面 應用程式不僅僅只是有 textboxs 和 labels, 同樣還需要執行動作,比如按鈕,滑鼠事件等。 因此讓我們新增一個按鈕來看看如何把 MVVM 類應用起來。 我們在同樣的 UI 上添加了一個‘Calculate tax’按鈕,

對 【對稱加密非對稱加密以及CA】的理解

最近申請了阿里雲的伺服器,進入了一個新的領域,當然一開始也是懵逼狀態,處於雲裡霧裡,決定將自己學習的計算機網路的相關知識複習一下。 對稱加密:即通訊雙方在對傳輸的檔案進行加密和解密時候,所用的是同一個金鑰。 優點:速度快,對稱性加密通常在訊息傳送方需要加密大量資料時使用,演算法公開、計算量小

tensorflow+faster rcnn程式碼理解:構建vgg前端RPN網路

0.前言 該程式碼執行首先就是呼叫vgg類建立一個網路物件self.net if cfg.FLAGS.network == 'vgg16': self.net = vgg16(batch_size=cfg.FLAGS.ims_per_batch) 該類位於vgg.py中,如下:

Android模組化元件化開發簡單理解

模組化和元件化可以理解為同一個概念: 將一個app分成多個模組,每個模組都是一個元件(module),開發過程中讓這些元件相互依賴或者單獨除錯某個元件。在釋出的時候將這些元件合併成一個apk。 Android元件化我的理解是 application與library之間相互

JS概念理解——函式物件、原型鏈、_proto_

        最近發現自己JS的基礎不太好,於是通過看書和大神的部落格,通過自己的理解將一些難懂的概念在此總結:         1.函式和物件的關係:         在JavaScript中一切物件都是通過函式建立的,某些情況下的寫法實際上是一種語法糖: var a

關於Matusing namespace cv的使用理解

參考:http://blog.sina.com.cn/s/blog_74f32c400101a1ah.html 參考文件:OpenCV中Mat的詳解 之前一直再用IplImage型別,昨天接觸Mat,使用起來發現有些不一樣,函式與之前的IplImage的有一點點不一樣 經

學習使用Docker、Docker-ComposeRancher搭建部署Pipeline

docker 部署 rancher 雲 微服務 說明 這篇文章是一系列文章的第一篇,在這一系列文章中,我們想要分享我們如何使用Docker、Docker-Compose和Rancher完成容器部署工作流的故事。我們想帶你從頭開始走過pipeline的革命歷程,重點指出我們這一路上遇到的

關於JS中變量提升的規則原理的一點理解

cnblogs 打印 blog javascrip 誤區 down mark fun ont 上篇文章中講到變量提升和函數提升的先後順序時蒙了,後來去查了一下資料,特別整理一下。 在《你不知道的JavaScript(上卷)》一書的第40頁中寫到:函數會首先被提升,然後才是變

git 在windows下的應用 - 本地倉庫代碼管理

軟件研發 研發管理 訪問https://gitforwindows.org/? 下載一個安裝包,一路next下去git config --global user.name "Pcdog" git config --global user.email "[email protected]"cd d:

【Effective Java讀書筆記】創建銷毀對象:考慮使用靜態工廠方法代替構造器

返回對象 boolean 簡化 將不 其他 種類型 bigint color pre 類可以提供一個靜態方法,返回類的一個靜態實例,如Boolean包裝類的一個獲取實例的靜態方法 1 public static Boolean valueOf(boolean b) { 2

WebSocket 的那些事

com lis 都沒有 情況下 系統 並不是 任務管理 js實現 因此   我的策劃大佬離職了,在他go之前我都沒有解決好一個問題,感覺如果我換了工作面試的時候,別人問到 “你在做項目的時候,遇到的最頭疼的問題是什麽,是怎麽解決的?”,首先想到的應該也是他,今天感覺是時候寫

JavaScript基礎知識從淺入深理解

isn argument javascrip turn console bom || 將不 函數聲明 JavaScript的簡介   javascript是一門動態弱類型的解釋型編程語言,增強頁面動態效果,實現頁面與用戶之間的實時動態的交互。   javascript是

Exchange 2013 CU17office 365混合部署

Exchange 2013 office 365 五一之前一直忙於項目,做Exchange 2013和office 365的混合部署,現在也記錄下混合部署的過程吧。首先說明下架構:本地Exchange 2013CU17已經部署完成,功能正常;混合部署規劃使用 一臺AAD Connect服務器; 兩臺

《軟件測試方法技術》-讀書筆記

圖片 軟件工程 AI 開發 支持 ont 3年 發的 一次 軟件測試正反兩方面的爭辯 軟件測試領域先驅 Bill Hetzel 博士 1993年在美國的北卡羅來納大學組織了歷史上第一次正式的關於軟件測試的會議。從此以後,軟件測試開始頻繁出現在軟件工程的研究和實踐中,也可以認

NFSSAMBA的簡單應用

NFS和SAMBA的簡單應用NFS和SAMBA的簡單應用(一) (1)使用samba和NFS分別共享/data目錄; (2)讓samba客戶端和NFS客戶端分別掛載samba服務器上共享的/data/至本地的/mydata目錄;本地的mysqld或mariadb服務的數據目錄設置為/myda

JSP學習與理解

parse runtime this java服務 b站 sps odin 作用域 地址欄 一.JSP的運用 1).WHYJSP是簡Servlet編寫的一種技術,它將Java代碼和HTML語句混合在同一個文件中編寫,只對網頁中的要動態產生的內容采用java代碼來編寫,

Git for Windows 工具的使用

修改編碼 帶來 rest 對比 刪除 多個 客戶端 first 功能 如果你還不知道什麽是Git,只知道GitHub,但是還不會用,我想這個教程會幫助你。 前言 鑒於網上目前的教材都太落後,GitHub for Windows已經更新了多個版本,好多界面都發生了變

PHP、MySQLJavaScript學習手冊筆記

本地 後端 驗證 css 考題 php 語言 html oot 第一章思考題1.創建一個完全動態網頁至少需要哪四大要素?服務器 動態語言php js 數據庫2.html代表超文本xxx3.因為sql分支用sql語言4.php用在服務器端 處理後端任務 js用在客戶端 本地驗