Time of Update: 2018-12-07
【傳遞事件】WPF在.NET簡單事件通知之上添加了很多基礎結構。傳遞事件的設計使得事件可以與元素樹一起很好的工作。事件發生後,可以在視覺樹和邏輯樹狀結構自動地進行上下傳遞,我們不需要添加任何額外的代碼。傳遞事件使得我們不需要過多關注於視覺樹,這樣封裝對於我們理解WPF的元素合成非常重要。比如,我們點擊一個按鈕的事件,在點擊的時候我們實際上點擊的是一個ButtonChrome或者TextBlock,也就是說我們點擊的是Button的內容元素。正是因為事件可以沿視覺樹傳遞,Button才發現這個事件
Time of Update: 2018-12-07
在前一個Post當中,我從資源編譯行為的角度討論了WPF中的資源。但是,不管是Resource還是Content都是在編譯時間聲明資源。如果我們打破這個限制,不希望指定完全確認的資源地址。WPF提供了一種類似IE地址定位的抽象,它根據應用程式部署的位置決議。WPF將應用程式的起源地點進行概念上的抽象。如果我們的應用程式位於http://yilinglai.cnblogs.com/testdir/test.application。我們應用程式的起源地點是http://yilinglai.cnblo
Time of Update: 2018-12-07
繼續相同的話題:WPF中的資源。這次我將嘗試從另外一個角度來分析WPF中的資源:資源編譯行為,以及如何根據應用程式的需要選擇適當的類型。首先建立一個預設的WPF工程,然後向工程中添加一個ICON資源。在添加資源後,我們可以選擇資源的類型,如所示:的下拉式清單我們可以看到資源所支援的各種類型。主要支援的編譯行為是Resource和Content。如果選擇為Resource,再用文本方式開啟C#工程檔案(*.csproj檔案),其中我們為發現如下的內容: <ItemGroup> &
Time of Update: 2018-12-07
讓我們假設這樣一個情境:一年以前,Media公司開發出一套通過電腦接收廣播的Radio模擬軟體產品。(有這樣的產品嗎,能真正接收廣播的軟體?我表示懷疑)這個產品早已投入市場,客戶已經在使用了。後來,Media公司將開發重心轉移到數位媒體上。於是他們投入了大量的人力物力,最後開發出了完美的媒體播放器軟體。這個播放器支援大多數媒體檔案,包括音頻媒體和視頻媒體。該產品取得了成功,也得到了使用者的好評。不過,現實生活中總有些刁鑽的客戶,比如說wayfarer,就是鄙人了,素愛懷舊。在使用媒體播放器的時候
Time of Update: 2018-12-07
在本系列的之十三中簡單介紹了WPF中資源的資源。但是,沒有給出任何具體的執行個體,在這個Post中將給出一個動態資源的例子,也算是響應daxian110的請求。並適當的擴充在前一個Post當中沒有涉及的知識。我們先看一個例子程式:<Window x:Class="WindowsApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http:
Time of Update: 2018-12-07
經過一段時間的學習..現在知識結構已經可以與Microsoft技術時代同行,其實就可以學習最近的新技術啦! 在之上的文章是轉載MSDN的Silverlight入門,還可以沒有什麼深入的就是一個簡介和入門,接下來我將怎樣安裝Silverlight1.1和一些資料貼出來!===================================================================== 一:下載和安裝 下載頁面: http://msdn2
Time of Update: 2018-12-07
最近2個月一直在學習WPF,在實際的開發中遇到下面一個3D情境有關的問題,我先給出問題代碼:首先是在資源中定義了一個3D變換組:<Window x:Class="Viewer3D.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Time of Update: 2018-12-07
這幾天看了wayfarer的《《讓僵冷的翅膀飛起來》系列之三——從Adapter模式到Decorator模式》後,感覺這樣的文章真應當多發一些,激發思路。只是本來想用進階評論,卻發現預設進階評論使用的是CuteEditor,在我的機器上根本無法使用,滑鼠始終是沙漏(不知道是不是跟防火牆有關),而自己又無法選擇使用什麼編輯器編輯進階評論,所以才不得不寫篇文章說說我的想法。具體內容,請看《也說說“從Adapter模式到Decorator模式”》。
Time of Update: 2018-12-07
通過前面的介紹,我們已經知道WPF支援用Style
Time of Update: 2018-12-07
Style是一種修改屬性值是方法。我們可以將其理解為對屬性值的批處理。對批處理大家應該不會感到預設。對,通過Style我們可以批量修改屬性的值。先從一個簡單的Style例子開始:<Window x:Class="Viewer3D.WindowSettins" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2
Time of Update: 2018-12-07
這篇文章主要是翻譯了ScottGu部落格的文章:Silverlight Tutorial Part 2: Using Layout Management。雖然是翻譯,但通過筆記記錄,我發現對這三個布局控制項有了更深刻的瞭解。Silverlight提供了非常靈活的布局管理系統,讓程式員和美工可以非常方便的控制控制項的位置。布局管理系統提供了兩種布局方式:絕對位置和相對定位。這兩種定位方式其實和HTML的兩種定位方式是一樣的。在Silverlight 2
Time of Update: 2018-12-07
最近比較忙些,好多天沒有寫WPF了。今天,我們繼續回到前面的話題:WPF中的資料處理。前面講過,通過實現INotifyPropertyChanged,我們可以改變使任意的CLR對象支援WPF的繫結來源。但是,INotifyPropertyChanged通常只應用在單個的類屬性上。在現實應用中,我們還會遇到另外一種情況:我們需要監視某一堆的資料是否發生變化。也就是說我們繫結資料源不再是一個單獨資料對象。比如,繫結來源是一個資料表時,我們希望在表中任何一條資料發生變化就能得到通知。(這裡暫不考慮WP
Time of Update: 2018-12-07
前一個Post當中介紹了WPF如何處理事件的傳遞過程。如何定義傳遞事件,並且對事件進行了分類。現在,我們看看WPF到底是如何處理Bubbling和Tunneling事件的。最後介紹了Attached事件。在UIElement類,預定義了很多的傳遞事件,比如鍵盤、滑鼠等等。其中大多數是Bubbling事件,其中很多的事件都還有一個對應的Tunneling事件。所有的Tunneling事件都是Preview首碼命名,它們都在對應的Bubbling事件之前激發。比如PreviewMouseMove這個
Time of Update: 2018-12-07
在上一個Post當中,我敘述了WPF中的資料繫結相關的一堆理論知識。現在,我們將對其中的某些方面通過執行個體做進一步的分析。在介紹WPF資料繫結源的種類時,第一種就是任意的CLR對象。這裡需要注意的是WPF雖然支援任意的CLR對象,但是一個普通的CLR對象類卻不行。我們還需要在CLR對象類上實現一種變化通知機制。WPF把這種通知機制封裝在了INotifyPropertyChanged介面當中。我們的CLR對象類只要實現了這個介面,它就具有了通知客戶的能力,通常是在屬性改變後通知綁定的目標。下面是
Time of Update: 2018-12-07
學習WPF/E也有一段日子了。前段時間老想著用WPF/E能畫什麼好。也許畫個動態2D報表,是個不錯的選擇。樣本中主要使用Ellipse畫出橢圓,然後Ellipse.Clip截取一個扇形。同理,最終的顯示效果<Ellipse Height="200" Width="200" x:Name="1" MouseLeave="javascript:leaveReport"MouseEnter="javascript:enterReport"Canvas.Left="30" Canvas.Top="
Time of Update: 2018-12-07
今天看到周兄的【全面解析DeepZoom 之一】酷!Deep Zoom的介紹,覺得實在是酷,就開始動手做了一下,做的不好,湊合著看吧。周兄是給大家全面解析,我只是做著玩的,所以叫做簡單示範……準備1.Visual Studio 20082.Deep Zoom
Time of Update: 2018-12-07
資料繫結,這是WPF提供的一個真正的優點。除了可以用在傳統的綁定環境中,資料繫結已經被擴充應用到控制項屬性上。學習應用資料繫結,也能真正的體現XAML的好處。到底什麼是資料繫結呢?也許你從字面上已經理解的很不錯了。通過資料繫結,我們在應用程式UI和程式邏輯之間建立了一種聯絡。正常建立綁定後,在資料的值發生改變後,綁定到資料的元素將自動更新、體現出資料的變化。同樣,我們先看幾個相關的知識點:1、DataContext屬性。設定DataContext屬性,其實就是指定資料內容。那麼資料內容又是什麼呢
Time of Update: 2018-12-07
兩種:普通案頭應用、瀏覽器應用Application.Current。可作為session使用,共用資料。三種模型:Window.NavigationWindow : Window 主要提供Navigate方法Page: 不能以Window做內容NavigationWindow/Frame都可以Navigate,幾種方式:1. <HyperLink>2. container.navigate(...)3. container.content=... /
Time of Update: 2018-12-07
Silverlight是什嗎?如果你從Google上搜一下,一定能找到很多的介紹。但如果你是一位開發人員,你或許應該從下面的角度瞭解什麼是Silverlight。Silverlight集合了多種技術到一個開發平台上,這樣你可以在開發中選擇你自己需要的工具和技術。下面將分別介紹Silverlight為我們帶來了什麼。WPF和XAML.。大家知道Silverlight的原名叫WPF/E,它是WPF的一個子集。所以Silverlight包含了WPF技術,它可以大大的擴充瀏覽器中的頁面元素。有了它我們可
Time of Update: 2018-12-07
[WPF疑難]ErrorTemplate顯示與隱藏問題