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控制元件
- 自定義Toast樣式AST
- 如何自定義 drag 樣式
- mui toast自定義樣式UIAST
- 自定義 checkbox 樣式
- 自定義dialog樣式
- Qt Charts 自定義樣式QT
- Houdini - 建立自定義的button樣式
- PHPCMS自定義表單樣式PHP
- android自定義button樣式Android
- UWP中實現自定義標題欄
- iOS 自定義拖拽式控制元件:QiDragViewiOS控制元件View
- 論如何在手機端web前端實現自定義原生控制元件的樣式Web前端控制元件
- CefSharp自定義捲軸樣式
- CSS自定義滑鼠指標樣式CSS指標
- Flex SDK 4(Gumbo)更方便的自定義樣式、自定義SparkSkin(二)薦FlexSpark
- ModernUI教程:如何從MUI樣式中派生自定義樣式UI
- Android自定義控制元件之自定義組合控制元件Android控制元件
- checkbox/radio自定義樣式
- pixi.js 自定義游標樣式JS
- input[type="radio"]自定義樣式
- jQuery validate 自定義樣式、規則jQuery
- Android自定義控制元件——自定義屬性Android控制元件
- WPF 自定義控制元件的坑(蠢的:自定義控制元件內容不顯示)控制元件
- 自定義Switch控制元件控制元件
- 自定義控制元件ViewPager控制元件Viewpager
- 控制元件自定義位置控制元件
- 如何自定義控制元件控制元件
- 自定義的ValidationSummary控制元件控制元件
- C#自定義控制元件:如果定義控制元件的事件C#控制元件事件
- Win10 UWP開發系列:開發一個自定義控制元件——帶數字徽章的AppBarButtonWin10控制元件APP
- 自定義控制元件中的控制元件呼叫引用控制元件的頁面裡的函式 (轉)控制元件函式
- SQLserver自定義樣式主鍵-函式實現篇SQLServer函式
- 4. 自定義控制元件(4) --- 自定義屬性控制元件
- Android自定義控制元件之自定義屬性Android控制元件
- 「HTML+CSS」--自定義按鈕樣式【004】HTMLCSS