UWP自定義ToggleButton控制元件的樣式
UWP自定義ToggleButton控制元件的樣式
一般來講,UWP自帶控制元件的樣式足夠我們使用,但是如果我們想要更具自己的需求修改樣式因該怎麼做呢?下面就以例項簡單示範一下。
需求是這樣的,我們需要做一個類似抖音點讚的按鈕,沒有點贊前是空心愛心,點贊後變成實心紅心,如果我們使用預設樣式,做出來的效果會是這樣的:
程式碼:
<!--未點贊前為白色空心-->
<ToggleButton Content="" Background="Transparent" FontFamily="Segoe MDL2 Assets" FontSize="24"/>
效果:
可以看出來這並不是我們想要的效果,並沒有改變心的樣子,僅僅是改變了背景,那我們下來對預設樣式進行改造,需要用的<Style>等,下面演示步驟:
1、我們在Blend for Visual Studio中開啟專案,再左側預覽中選中要修改樣式的控制元件點選右鍵,或者在上方名稱上下拉選擇“建立副本”(這裡有時候因為一些原因會沒有建立副本這個選項,只有一個建立空白項)
2、起好名字選擇定義樣式儲存的位置,選擇“應用程式”會在App.xaml檔案中建立,選擇“此文件”則會在當前xaml檔案的資源下建立,這裡我為了不增加頁面程式碼量,選擇“應用程式”
可以看到系統自動生成了該控制元件的預設樣式副本程式碼
可以看到“PointerOver”、“Pressed”這些對應的就是控制元件每個事件所對應的樣式,我們可以在這裡對樣式進行修改,現在我們正式修改我們想要的效果
3、我們找到我們要修改的按下Checked事件,Storyboard.TargetProperty="Content"對應我們需要修改的屬性,Value=""代表屬性值,(是Segoe MDL2 Assets字型集裡心形的轉義字元。)
Storyboard.TargetProperty="Foreground"代表我們需要修改字型的顏色屬性,Value="{StaticResource Red}"代表紅色
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Content">
<DiscreteObjectKeyFrame KeyTime="0" Value=""/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource Red}"/>
</ObjectAnimationUsingKeyFrames>
現在我們看一下xaml中程式碼的樣子
<ToggleButton Content="" Background="Transparent" Style="{StaticResource ToggleButtonStyle}"
FontFamily="Segoe MDL2 Assets" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center"/>
可以看出通過Style="{StaticResource ToggleButtonStyle}" 已經引用了我們修改的靜態資源,我們執行一下看看效果
相關文章
- UWP 自定義密碼框控制元件密碼控制元件
- WPF滑塊控制元件(Slider)的自定義樣式控制元件IDE
- qt自定義控制元件樣式02-QSpinBoxQT控制元件
- cnBlogs的自定義樣式
- 自定義元件-樣式元件
- mui toast自定義樣式UIAST
- Qt Charts 自定義樣式QT
- checkbox/radio自定義樣式
- 如何自定義 drag 樣式
- Houdini - 建立自定義的button樣式
- iOS 自定義拖拽式控制元件:QiDragViewiOS控制元件View
- input[type="radio"]自定義樣式
- CefSharp自定義捲軸樣式
- 如何自定義radio按鈕的樣式
- QFileDialog自定義樣式設定SetStytlesheet
- 本部落格園自定義樣式
- 自定義控制元件ViewPager控制元件Viewpager
- 自定義Switch控制元件控制元件
- 自定義瀏覽器捲軸樣式瀏覽器
- 自定義checkbox樣式(相容IE9)IE9
- pixi.js 自定義游標樣式JS
- 4. 自定義控制元件(4) --- 自定義屬性控制元件
- Flutter自定義控制元件第一式,炫酷“蛛網”控制元件Flutter控制元件
- WPF 模擬UWP原生視窗樣式——亞克力|雲母材質、自定義標題欄樣式、原生DWM動畫 (附我封裝好的類)動畫封裝
- iOS自定義控制元件 SlideriOS控制元件IDE
- iOS自定義控制元件 AlertViewiOS控制元件View
- iOS自定義控制元件 SegmentiOS控制元件
- winform 自定義容器控制元件ORM控制元件
- WPF Blend 自定義控制元件控制元件
- Flutter 之 自定義控制元件Flutter控制元件
- Web Components 系列(八)—— 自定義元件的樣式設定Web元件
- Css實現checkbox及radio樣式自定義CSS
- antd-mobile 自定義picker按鈕樣式
- 自定義Toast樣式+改變Toast寬高AST
- 微信小程式--自定義radio元件樣式微信小程式元件
- Obsidian自定義程式碼塊樣式成Typora
- vxe-table 自定義單元格樣式
- 「HTML+CSS」--自定義按鈕樣式【004】HTMLCSS