Time of Update: 2018-12-07
僅僅是一種非常簡單的Button控制項範本。不過顏色變化都是漸層的。Foreground,Background和Border設定和普通Button一樣,滑鼠指向時高亮色,點擊後顏色和IsEnabled為False的顏色可以通過修改XAML資源,定義在BtnPressed,BtnHighlighted和BtnDisabled資源中。當Button.IsEnabled為False時,Background變成Transparent,然後Foreground和BorderBrush會被設定成BtnDi
Time of Update: 2018-12-07
做一個小程式,進入程式後,選擇一個檔案夾,然後從StorageFolder中讀取StorageFile,篩選圖片檔案,最後將圖片顯示在GridView中。 介面上很簡單,一個準備彈出FolderPicker的按鈕,還有一個GridView,GridView的Template直接綁定ItemsSource的映像:<GridView Name="grid"> <GridView.ItemTemplate> <DataTemplate>
Time of Update: 2018-12-07
目錄WPF中ICollectionView的分類WinRT/Metro中ICollectionView的分類
Time of Update: 2018-12-07
更新 2.0增加EditData和TryGetData方法 解決Title不設定時拋出的ArgumentException TrySetData支援設定ViewModel對象是否被複製(不複製的ViewModel不需要繼承ICloneable) 調整DialogChrome按鈕顯示 顯示對話方塊增加showDialog參數(預設是True),可以指定對話方塊是有模式還是無模式類型 顯示對話方塊增加onlyClose參數,可以指定對話方塊是否只顯示“關閉”按鈕
Time of Update: 2018-12-07
字串轉換成顏色,這個在WPF中可以一句話搞定的事情:var color =
Time of Update: 2018-12-07
相依性屬性(Dependency Property)的當前值(Current Value),基值(Base Value)和本地值(Local Value)是MSDN常出現的三個詞,這些屬性和相依性屬性的優先順序設定有關。如下表:這裡是當前值1. 屬性系統強制轉換,這裡是通過相依性屬性的CoerceValueCallback2. 活動動畫或者具有Hold行為的動畫 這裡是基值3. 本地值,通過相依性屬性的SetValue方法,資源,綁定4.
Time of Update: 2018-12-07
WPF判斷命令(Command)是否能夠執行是通過ICommand.CanExecute事件,在實際程式中路由命令一般是通過CommandBinding來使命令得到實際作業碼,但是這個CanExecute事件的調用是由WPF控制的,有些時候,比如命令執行後進行一些非同步耗時操作,操作完成後會影響CanExecute事件結果,但是WPF不會立即做出反應,那麼這個時侯就需要手動調用CommandManager.InvalidateRequerySuggested對命令系統進行一次重新整理。 比如下面
Time of Update: 2018-12-07
方法1:改寫SystemParameters類的屬性 WPF捲軸的寬度參數儲存在SystemParameters中的VerticalScrollBarWidthKey,和HorizontalScrollBarHeightKey屬性中,那麼很簡單定義一個動態資源在其範圍內改變這個參數就可以 <ScrollViewer HorizontalScrollBarVisibility="Auto"
Time of Update: 2018-12-07
目錄簡介使用方法原始碼 返回目錄簡介昨天寫了篇關於ListView列排序的文章:一種簡單易用的WPF
Time of Update: 2018-12-07
這是另一篇文章的續集:WinRT/Metro:
Time of Update: 2018-12-07
最近下載使用了最新的Inno Setup 5.5.3為.NET程式製作安裝程式,發現有一些地方需要注意一下。 目錄程式名稱的正確定義安裝資訊的修正支援多語言的.NET版本查詢下載樣本iss檔案 返回目錄程式名稱的正確定義首先是MyAppName常量的定義(也就是Inno Setup嚮導中的程式名稱定義),他的值應該定義成:“[公司名稱] [程式名稱] [版本]”這種樣式,儘管Inno
Time of Update: 2018-12-07
兩年前,曾經寫過一篇文章:一種簡單易用的WPF ListView點擊列排序的方法,示範通過WPF中的CollectionView來對ListView進行排序,具體排序的執行是這樣的:在.NET 3.5+環境下,如果目標資料是IList,程式會使用Expression Tree來產生並設定ListCollectionView類型的CustomSort屬性從而進行排序。在.NET
Time of Update: 2018-12-07
如上,這兩種顏色提示,第一種(左邊的)是進度條提示,在檔案操作中,下載軟體或者播放器程式表徵圖中都有。它的長度可以是一定值的也可以是那種不斷滑動的代表不確定進度。同時顏色的不同也代表不同的狀態,正常狀態是綠色,暫停狀態是黃色,錯誤狀態是紅色。 第二種顏色則是不停地閃爍,在即時通訊軟體中很常見。 先說第二種,原理就是使用Win32的FlashWindowEx
Time of Update: 2018-12-07
效果如下: 當我們想深度定義一個控制項的外表時,我們通常會通過定義控制項的Template來完成,但是TreeViewItem的Template定義會比較複雜(MSDN),因為你不僅需要定義每個TreeViewItem的資料展示,同時還需要重新定義TreeViewItem子成員的摺疊/展開控制。除非你想徹徹底底得改變整個TreeView(像這樣),如果你想繼續使用系統預設的TreeView摺疊樣式,僅想改變TreeViewItem本身資料的外觀,那麼你可以這樣做。我們先拿一個直接定義TreeVi
Time of Update: 2018-12-07
關於軟體的介紹和更新請參考:Mgen Object 672:
Time of Update: 2018-12-07
這個需求很簡單,當ListBox或者ListView中有新的資料被加入後,ListBox/ListView的捲軸會自動下滑,事實上附加屬性可以應用在任何ItemsControl中,要求ItemsControl的控制項範本有ScrollViewer控制項的定義。(如,這種列表在安裝程式中很常見,用於顯示安裝的檔案。) 這種需求手動實現起來也是非常簡單的,不過使用附加屬性代碼複用度會更高。只需要這樣做:<!-- loc是ListScroll的本地命名空間 --><ListBox
Time of Update: 2018-12-07
在還原序列化中出現異常時,如果Json.NET拋出的是JsonException,Message屬性通常會有所觸發異常的位置資訊,類似這樣:可以從中看到,異常發生在id屬性的解析,位置是第1行,第13列。 但是一些非JsonException則不會這樣,比如這段還原序列化代碼:using Newtonsoft.Json; public class Data{ public int id { get; set; }} class Program{ static void
Time of Update: 2018-12-07
我發現許多人把樹形資料的顯示緊緊地和TreeView控制項綁定在一起,雖然TreeView是多數樹形資料的首選控制項,但是WPF本身的樹形資料顯示並不是綁定在TreeView上的。WPF的樹形資料顯示依賴在HierarchicalDataTemplate資料範本中,而支援此類模板的控制項是HeaderedItemsControl控制項。 寫一個非常簡單的程式,同樣的樹形資料,直接顯示在TreeView和MenuItem中: 因為TreeViewItem和MenuItem都是HeaderedIte
Time of Update: 2018-12-07
眾所周知,Windows 8 WinRT開發中Visual
Time of Update: 2018-12-07
很簡單,直接在Selector或者TreeView的CommandBindings屬性中加入CommandBinding來繫結應用程式的複製命令:ApplicationCommands.Copy,使用這個WPF預定義的命令我們就不需要額外定義命令類型,同時也不需要定義InputBinding來綁定按鍵。最後在命令執行事件中使用Clipboard.SetText方法來把當前選擇項的值複製到剪貼簿。CommandBinding可以在介面XAML中聲明,不過把它寫成一個附加屬性更好,另外注意雖然Tre