UWP 新控制項ColorPicker

2022-01-11 03:16:15 字數 1804 閱讀 4797

fall creators update中提供了乙個新得colorpicker控制項,解決了以前選擇顏色只能用combo box的窘境。

如上所示,colorpiker可以通過在光譜或色輪上拖動滑塊,或者在rgb/hsv及十六進製制的textbox中直接輸入顏色的數值改變color屬性。

colorpicker提供了很多屬性以設定它的外觀,下面介紹一些常用的屬性。

colorspectrumshape是定義colorpicker外觀的主要屬性。當設定為colorspectrumshape.box時顯示正方形的光譜,設定為colorspectrumshape.ring時顯示為圓型的hsv色輪。

完整的colorpicker實在太佔空間,而且整個控制項左邊高右邊低,很不平衡。使用以下設定可以隱藏colorpreview及其它text box以最簡化colorpicker的顯示,使它勉強正常一點。

使用如下xaml基本可以將所有元素顯示出來:

下面列表列出了各元素對應的屬性。

colorpicker難用的地方在於它是個大塊頭,而且沒有header,擺在表單裡面格格不入。官方文件裡面還介紹了怎麼把colorpicker放在button的flyout裡使用,都做到這樣了還不如直接提供這個彈出控制項。

為了使它更好用我把它簡單地封裝到乙個彈出控制項中。由於picker控制項通常都是指點擊按鈕彈出乙個popup或flyout通過滑鼠點選選擇值的控制項,例如datepicker、timepicker或者extended wpf toolkit 中的colorpicker,uwp中的colorpicker這個名稱讓我很為難,只好把自己封裝的控制項命名為colorselector。詳細**請見文章最後給出的fluent design system sample原始碼。

(也許是flyout沒有新增陰影或邊框的原因,看起來醜醜的。)

winform中有colordialog:

wpf有extended wpf toolkit 中的colorpicker:

而uwp拖到現在才終於肯提供乙個colorpicker。每次更新技術都扔掉一些常用控制項,導致開發者只能選擇第三方控制項或自己實現,連treeview都是拖了幾年才搞出來。這難道是微軟對我們的考驗嗎?

color picker

colorpicker class

fluent design system sample

xamluibasics

UWP 筆記 跨頁面訪問控制項

剛剛看到乙個東西很有用,在自己的部落格記錄一下哈哈 說的是開發uwp時,經常需要在這個頁面訪問另乙個頁面的控制項 直接mainpage.myframe直接這樣訪問當然是不行的,因為myframe這個控制項不是public,這樣即可 先在xaml介面這個控制項myframe裡加上這樣一句話 x fie...

UWP 使用UCT的Markdown控制項

然後就突然有了乙個大膽的想法 這個玩意要是在uwp中實現,用來做更新日誌說明,豈不是美滋滋 嘿嘿嘿,是的,確實美滋滋。而且不用你親自去寫乙個markdown text,微軟團隊的uwp community toolkit,已經幫你完成了一切。在nuget裡面搜尋microsoft.toolkit.u...

UWP 自定義控制項 了解模板化控制項 系列文章

uwp自定義控制項的入門文章 uwp 自定義控制項 了解模板化控制項 1 基礎知識 uwp 自定義控制項 了解模板化控制項 2 模仿contentcontrol uwp 自定義控制項 了解模板化控制項 2.1 理解contentcontrol uwp 自定義控制項 了解模板化控制項 3 實現head...