WPF 的 style 定義 使用 繼承 復用

style 樣式

  1. 如何定義一個 style 樣式
	 <Button Content="樣式" Width="100" Height="50"><Button.Style><Style></Style></Button.Style></Button>
  1. 擁有的屬性
    1. targetType = “” 針對什么類型生效
    2. setter 設置屬性的值 property = “屬性名稱” value = “值”
    3. triggers 觸發器,當命中后觸發什么條件.
    4. multitriggers 多重條件觸發器
    5. eventTriggers 事件觸發器,內部都是動畫。
    	<Button ><Button.Style><Style TargetType="Button"><Style.Setters><Setter Property="Width" Value="100"></Setter><Setter Property="Height" Value="100"></Setter><Setter Property="Content" Value="不好"></Setter><Setter Property="Background" Value="#FFA500"></Setter></Style.Setters><Style.Triggers><!--當鼠標移動上時觸發以下條件--><Trigger Property="IsMouseOver" Value="True"><Setter Property="Content" Value="你好"></Setter></Trigger><MultiTrigger><MultiTrigger.Conditions><!--當鼠標移動上時并且發生點擊的時候觸發以下條件--><Condition Property="IsMouseOver" Value="True"></Condition><Condition Property="IsPressed" Value="True"></Condition></MultiTrigger.Conditions><MultiTrigger.Setters><Setter Property="Foreground" Value="Red"/></MultiTrigger.Setters></MultiTrigger><!--事件觸發器,點擊鼠標右鍵--><EventTrigger RoutedEvent="MouseRightButtonDown"><BeginStoryboard><Storyboard><!--在1秒鐘的事件里,對屬性值進行變更,這里是將寬高變成250--><DoubleAnimation Duration="0:0:1" To="250" Storyboard.TargetProperty="Width"></DoubleAnimation><DoubleAnimation Duration="0:0:1" To="250" Storyboard.TargetProperty="Height"></DoubleAnimation></Storyboard></BeginStoryboard></EventTrigger></Style.Triggers></Style></Button.Style>
    </Button>
    
  2. Style 的復用
    如何定義一個資源的使用。
    <Window x:Class="zhiyu.training.StyleWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:zhiyu.training"mc:Ignorable="d"Title="StyleWindow" Height="450" Width="800"xmlns:sys ="clr-namespace:System;assembly=mscorlib">
    <Window.Resources><!--如何定義一個int類型的變量--><sys:Double x:Key="value">123</sys:Double>
    </Window.Resources>
    <Grid><Button Width="{StaticResource value}" Height="30" Margin="10" HorizontalAlignment="Left"><Button.Style><Style TargetType="Button"><!--在 style 中定義資源--><Style.Resources><SolidColorBrush Color="Green" x:Key="Brush"></SolidColorBrush></Style.Resources><!-- 引用資源 --><Setter Property="Background" Value="{StaticResource Brush}"></Setter></Style></Button.Style></Button>
    </Grid>
    

如何復用一個 style

 	<Window x:Class="zhiyu.training.StyleWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:zhiyu.training"mc:Ignorable="d"Title="StyleWindow" Height="450" Width="800"xmlns:sys ="clr-namespace:System;assembly=mscorlib"><Window.Resources><!--如何定義一個int類型的變量--><sys:Double x:Key="value">123</sys:Double><Style TargetType="Button"><Style.Resources><SolidColorBrush Color="Green" x:Key="Brush"></SolidColorBrush></Style.Resources><Setter Property="Background" Value="{StaticResource Brush}"></Setter></Style><Style TargetType="Button" x:Key="ab"><Style.Resources><SolidColorBrush Color="Yellow" x:Key="Brush"></SolidColorBrush></Style.Resources><Setter Property="Background" Value="{StaticResource Brush}"></Setter></Style></Window.Resources><Grid><!--全局風格--><Button Width="{StaticResource value}" Height="30" Margin="10" HorizontalAlignment="Left"></Button><!--使用ab風格--><Canvas><Button Style="{StaticResource ab}" Height="30" Width="200"  Canvas.Top="50"></Button></Canvas><!--什么風格都不用--><Canvas><Button Style="{x:Null}" Height="30" Width="200"  Canvas.Top="100"></Button></Canvas></Button></Grid></Window>

如何繼承一個 Style BaseOn

 <Window.Resources><Style TargetType="Button" x:Key="baseOn"><Setter Property="Content" Value="你好"></Setter></Style><!-- 使用 BaseOn 繼承--><Style TargetType="Button" x:Key="ab" BasedOn="{StaticResource baseOn}"><Style.Resources><SolidColorBrush Color="Yellow" x:Key="Brush"></SolidColorBrush></Style.Resources><Setter Property="Background" Value="{StaticResource Brush}"></Setter></Style></Window.Resources>
<Grid>
<Canvas><Button Style="{StaticResource ab}" Height="30" Width="200"  Canvas.Top="50"></Button>
</Canvas>
</Grid>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14341.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14341.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14341.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu中 petalinux 安裝 移植linux --tftp/tftp-hpa服務的方法

Xilinx 文檔 PetaLinux 指南&#xff1a;如何創建 PetaLinux 環境 &#xff08;2019.1&#xff09; PetaLinux工具參考指南 PetaLinux安裝詳解(Xilinx , linux, zynq, zynqMP) petalinux 2020.1安裝教程 一、PetaLinux工具和庫安裝 PetaLinux 工具要求主機系統 /bin/sh 為“b…

18.網絡編程

網絡編程 又稱為Socket編程。 Java中網絡編程主要是以Java語言完成信息數據在網絡上的傳輸。 網絡 計算機網絡&#xff0c;指的是將不同地理位置的多臺計算機連接起來&#xff0c;可以實現信息共享和信息傳輸。 Java是Internet上的語言&#xff0c;提供了對網絡應用程序的…

筆記 | 《css權威指南》

網絡安全色 URL text-indent line-height & vertical-align 字體 font-weight 400 normal 700 bold background-attachment

SpringBoot項目集成JetCache緩存框架步驟

JetCache是阿里開源的基于java開發的緩存框架&#xff0c;支持多種緩存類型&#xff1a;本地緩存、分布式緩存、多級緩存。能夠滿足不同業務場景的緩存需求。 1.導入依賴 <!--jetcache緩存 --> <dependency><groupId>com.alicp.jetcache</groupId>&l…

【調試筆記-20240516-Windows-使用VS2019編譯edk2(上)】

調試筆記-系列文章目錄 調試筆記-20240516-Windows-使用VS2019編譯edk2&#xff08;上&#xff09; 文章目錄 調試筆記-系列文章目錄調試筆記-20240516-Windows-使用VS2019編譯edk2&#xff08;上&#xff09; 前言一、安裝開發工具1. 安裝 VS20192. 安裝 Python 3.103. 安裝 …

pdf加水印怎么加?3種添加水印方法分享

pdf加水印怎么加&#xff1f;PDF加水印不僅是為了保護文檔內容&#xff0c;確保信息的安全性和完整性&#xff0c;更是一種有效的版權保護措施。通過添加水印&#xff0c;您可以在文檔中嵌入公司名稱、日期、編號等信息&#xff0c;以明確文檔的歸屬權和使用限制。此外&#xf…

小而美:兩步完成從源碼到應用的極簡交付

作者&#xff1a;花三&#xff08;王俊&#xff09; Serverless 應用引擎 SAE 是阿里云推出的一款零代碼改造、極簡易用、自適應彈性的容器化應用托管平臺&#xff0c;面市以來為幾萬家企業客戶提供服務&#xff0c;運行穩定&#xff0c;廣受好評。 SAE 的出現解決了眾多企業…

Python庫之lxml的簡介、安裝、使用方法詳細攻略

Python庫之lxml的簡介、安裝、使用方法詳細攻略 簡介 lxml是一個用于處理XML和HTML文檔的Python庫&#xff0c;它提供了簡單易用的API來解析和生成這些文檔。lxml以其性能和易用性而受到廣泛歡迎&#xff0c;特別適合于需要處理大量數據或需要高性能解析的場景。 安裝 安裝…

運行時異常和編譯時異常的區別

Java中的異常被分為兩大類&#xff1a;編譯時異常和運行時異常。 都是RuntimeException類及其子類異常&#xff0c;如NullPointerException、IndexOutOfBoundsException。這些異常是不檢查異常&#xff0c;運行時異常的特點是Java編譯器不會檢查它&#xff0c;程序中可以選擇捕…

純代碼如何實現WordPress搜索包含評論內容?

WordPress自帶的搜索默認情況下是不包含評論內容的&#xff0c;不過有些WordPress網站評論內容比較多&#xff0c;而且也比較有用&#xff0c;所以想要讓用戶在搜索時也能夠同時搜索到評論內容&#xff0c;那么應該怎么做呢&#xff1f; 網絡上很多教程都是推薦安裝SearchWP插…

RK3588 Android13 預安裝自己的apk應用及把這個應用設置為默認桌面

1、cp -rf device/rockchip/rk3588/rk3588m_s/preinstall device/rockchip/rk3588/rk3588_t/ 2、給device/rockchip/rk3588/rk3588_t/preinstall/的存放app的文件夾改名為app-imms2&#xff0c;在app-imms2放入app-imms2.apk,編譯安卓源碼即可&#xff0c; 3、編譯完會在out/…

android sp指針的cast

sp<Base> b; sp<Derived> d; b static_cast<Base*>(d.get()); 對于c原生的智能指針&#xff0c;有static_pointer_cast之類的操作方法。可以看cppreference。

Spring Web MVC介紹及詳細教程

目錄 1.什么是Spring Web MVC&#xff1f; 1.1 MVC定義 1.2 Spring MVC與MVC關系 2.為什么要學習Spring MVC 3.項目創建 4.Spring MVC連接 4.1 RequestMapping 4.2 PostMapping和GetMapping 5.Spring MVC參數獲取 5.1 獲取單個參數 5.2 獲取多個參數 5.3 獲取普通對…

通用代碼生成器應用場景一,項目前期

通用代碼生成器是一種自動化編程軟件&#xff0c;是一種先進的編譯系統。它具有表級抽象。把系統抽象為域對象&#xff0c;枚舉&#xff0c;彈性登錄模塊&#xff0c;復雜版面和圖形報表。使用通用代碼生成器完成項目前期&#xff0c;比直接使用對應的高級語言快的多&#xff0…

element Notification 消息過多需要折疊

Notification 消息過多太長 希望能折疊 如圖下效果 element-plus 可以將dom 插入到具體的元素 結合css :nth-child 來控制樣式達到效果 element dom 只能插入到body中 所以無法使用:nth-child 1.Notification需要消息提示時設置class let eleNum 0 // 彈窗的序號 function…

vue+canvas實現逐字手寫效果

在pc端進行逐字手寫的功能。用戶可以在一個 inputCanvas 上書寫單個字&#xff0c;然后在特定時間后將這個字添加到 outputCanvas 上&#xff0c;形成一個逐字的手寫效果。用戶還可以保存整幅圖像或者撤銷上一個添加的字。 <template><div class"container"…

小紅書-社區搜索部 (NLP、CV算法實習生) 一面面經

&#x1f604; 整個流程按如下問題展開&#xff0c;用時60min左右面試官人挺好&#xff0c;前半部分問問題&#xff0c;后半部分coding一道題。 各位有什么問題可以直接評論區留言&#xff0c;24小時內必回信息&#xff0c;放心~ 文章目錄 1、自我介紹2、介紹下項目&#xff…

金額計算導致的錯誤問題匯總解決

在日常的開發中&#xff0c;前端計算金額是非常常見&#xff0c;如果不夠仔細&#xff0c;考慮不夠周全的話&#xff0c;很容易犯錯的&#xff0c;金額這個東西一但錯了是很嚴重的&#xff0c;因此總結一些常見的錯誤&#xff1a; 1.最重要的&#xff0c;涉及到計算的參數一定要…

關于做事方式的小討論

大家好&#xff0c;我是阿趙。 ??之前五一勞動節期間&#xff0c;看到了這么一個新聞&#xff1a;某動物園內部收費項目五一期間漲價&#xff0c;喂長頸鹿的樹葉&#xff0c;一枝需要30元。然后新聞下面的評論就炸鍋了&#xff0c;紛紛的指責動物園太黑心&#xff0c;一枝樹葉…

淄博公司商標駁回復審條件及流程

商標是人工審查的&#xff0c;所以不同的人會有不同的想法和意見&#xff0c;導致同一案件的審查結果不同。特別是商標審查周期縮短到5個月&#xff0c;全國平均每個工作日有1萬多個商標提交申請&#xff0c;而全國只有一個商標審查單位——國家商標局提交申請。這種情況下&…