記錄 | WPF基礎學習Style局部和全局調用

目錄

  • 前言
  • 一、Style
    • 1.1 例子
    • 1.2 為樣式起名字
    • 1.3 BasedOn 繼承上一個樣式
  • 二、外部Style
    • Step1 創建資源字典BaseButtonStyle.xaml
    • Step2 在資源字典中寫入Style
    • Step3 App.xaml中寫引用路徑【全局】
    • Step4 調用
    • 三、代碼提供
    • 四、x:Key和x:Name區別
  • 更新時間


前言

參考文章:
參考視頻:【WPF入門教程 Visual Studio 2022】WPF界面開發入門

自己的感想


一、Style

如下圖所示,在Windows.Resources中設置的Style屬性,只在當前界面產生效果。
在這里插入圖片描述

1.1 例子

在這里插入圖片描述

<Window x:Class="WPF_Study.MainWindow"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:WPF_Study"mc:Ignorable="d"Title="WPF入門.txt" Height="600" Width="800"><Window.Resources><Style TargetType="Button"><Setter Property="Background" Value="Red"/><Setter Property="FontSize" Value="20"/><Setter Property="Height" Value="40"/><Setter Property="Width" Value="70"/></Style></Window.Resources><StackPanel><Button Content="登錄" /><Button Content="幫助" /><Button Content="退出" /></StackPanel></Window>

1.2 為樣式起名字

為啥要起別名?1.1中的案例導致所有的Button組件都是這個紅色樣式,但是如果我們只想讓退出按鈕為紅色,其他三個按鈕為綠色,該怎么操作?
在這里插入圖片描述

<Window x:Class="WPF_Study.MainWindow"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:WPF_Study"mc:Ignorable="d"Title="WPF入門.txt" Height="600" Width="800"><Window.Resources><Style x:Key="QuitStyle" TargetType="Button"><Setter Property="Background" Value="Red"/><Setter Property="FontSize" Value="20"/><Setter Property="Height" Value="40"/><Setter Property="Width" Value="70"/></Style><Style x:Key="loginStyle" TargetType="Button"><Setter Property="Background" Value="Green"/><Setter Property="FontSize" Value="20"/><Setter Property="Height" Value="40"/><Setter Property="Width" Value="70"/></Style></Window.Resources><StackPanel><Button Style="{StaticResource loginStyle}" Content="登錄" /><Button Style="{StaticResource loginStyle}" Content="幫助" /><Button Style="{StaticResource QuitStyle}" Content="退出" /></StackPanel></Window>

1.3 BasedOn 繼承上一個樣式

在這里插入圖片描述

<Window x:Class="WPF_Study.MainWindow"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:WPF_Study"mc:Ignorable="d"Title="WPF入門.txt" Height="600" Width="800"><Window.Resources><Style TargetType="Button"><Setter Property="Background" Value="WhiteSmoke"/><Setter Property="FontSize" Value="20"/><Setter Property="Margin" Value="20,10"/></Style><Style x:Key="QuitStyle" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}"><Setter Property="Background" Value="Red"/></Style><Style x:Key="loginStyle" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}"><Setter Property="Background" Value="Green"/></Style></Window.Resources><StackPanel><Button Style="{StaticResource loginStyle}" Content="登錄" /><Button Content="幫助" /><Button Style="{StaticResource QuitStyle}" Content="退出" /></StackPanel></Window>

二、外部Style

需要我們把style放入xaml文件中。

Step1 創建資源字典BaseButtonStyle.xaml

在這里插入圖片描述

Step2 在資源字典中寫入Style

在這里插入圖片描述

Step3 App.xaml中寫引用路徑【全局】

在這里插入圖片描述

Step4 調用

在這里插入圖片描述


三、代碼提供

C# WPF中的Style寫入xaml中進行全局引用——點擊下載代碼


四、x:Key和x:Name區別

  • 在Resources中進行唯一標定。

在這里插入圖片描述
在這里插入圖片描述


更新時間

  • 2025-02-06:創建。
  • 2025-02-07:補充x:key和x:name之間區別。

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

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

相關文章

如果$nextTick內部拋出錯誤,如何處理?

如果 $nextTick 內部拋出錯誤,可以通過在回調函數中使用 try…catch 語句來捕獲和處理這些錯誤。由于 $nextTick 是異步執行的,因此錯誤不會直接影響到 Vue 的運行,但捕獲錯誤可以幫助你進行更好的錯誤處理和調試。 一、使用 try…catch 以下是如何在 $nextTick 中捕獲錯誤…

吳恩達深度學習——卷積神經網絡實例分析

內容來自https://www.bilibili.com/video/BV1FT4y1E74V&#xff0c;僅為本人學習所用。 文章目錄 LeNet-5AlexNetVGG-16ResNets殘差塊 1*1卷積 LeNet-5 輸入層&#xff1a;輸入為一張尺寸是 32 32 1 32321 32321的圖像&#xff0c;其中 32 32 3232 3232是圖像的長和寬&…

Spring Boot 自動裝配原理與優化實踐

在 Java 開發領域&#xff0c;Spring Boot 以其 “約定優于配置” 的理念&#xff0c;極大地簡化了 Spring 應用的開發和部署過程&#xff0c;成為了眾多開發者的首選框架。它通過自動裝配機制&#xff0c;讓開發者能夠快速搭建一個功能完備的應用&#xff0c;而無需進行繁瑣的…

【Uniapp-Vue3】z-paging插件組件實現觸底和下拉加載數據

一、下載z-paing插件 注意下載下載量最多的這個 進入Hbuilder以后點擊“確定” 插件的官方文檔地址&#xff1a; https://z-paging.zxlee.cn 二、z-paging插件的使用 在文檔中向下滑動&#xff0c;會有使用方法。 使用z-paging標簽將所有的內容包起來 配置標簽中的屬性 在s…

【B站保姆級視頻教程:Jetson配置YOLOv11環境(七)Ultralytics YOLOv11配置】

Jetson配置YOLOv11環境&#xff08;7&#xff09;Ultralytics YOLOv11環境配置 文章目錄 1. 下載YOLOv11 github項目2. 安裝ultralytics包3. 驗證ultralytics安裝3.1 下載yolo11n.pt權重文件3.2 推理 1. 下載YOLOv11 github項目 創建一個目錄&#xff0c;用于存放YOLOv11的項目…

第二天:系統從BIOS/UEFI到GRUB/bootloader的啟動過程

目錄 **一、BIOS/UEFI初始化階段****二、引導加載程序&#xff08;GRUB&#xff09;的啟動過程****1. BIOS模式下的GRUB分階段加載****2. UEFI模式下的GRUB加載** **三、操作系統內核加載與初始化****四、關鍵組件與配置文件****五、故障排查與恢復****總結**常見問題如何在UEF…

es官方go客戶端創建ik索引并進行查詢操作

es-go client引入gomod go get github.com/elastic/go-elasticsearch/v8latest連接es服務器&#xff08;不經過安全校驗) cfg : elasticsearch.Config{Addresses: []string{"http://localhost:9200",}, } es, err : elasticsearch.NewClient(cfg) if err ! nil {pa…

【容器技術01】使用 busybox 構建 Mini Linux FS

使用 busybox 構建 Mini Linux FS 構建目標 在 Linux 文件系統下構建一個 Mini 的文件系統&#xff0c;構建目標如下&#xff1a; minilinux ├── bin │ ├── ls │ ├── top │ ├── ps │ ├── sh │ └── … ├── dev ├── etc │ ├── g…

【C語言系列】深入理解指針(5)

深入理解指針&#xff08;5&#xff09; 一、sizeof和strlen的對比1.1sizeof1.2strlen1.3sizeof和strlen的對比 二、數組和指針筆試題解析2.1 一維數組2.2 字符數組2.2.1代碼1&#xff1a;2.2.2代碼2&#xff1a;2.2.3代碼3&#xff1a;2.2.4代碼4&#xff1a;2.2.5代碼5&#…

標志的推理

下面的討論是我對《對編程實現擬人智能可行性的論證》這篇文章的“賦值與對象的標志”這一節的展開討論。 標志能夠使我們更好的思維&#xff08;比如用輪廓標記物體對象&#xff0c;用興奮強度標記回憶情況等等&#xff09;。有思維標志、信息標志&#xff0c;單純標志、組合…

【藍橋杯嵌入式】2_LED

1、電路圖 74HC573是八位鎖存器&#xff0c;當控制端LE腳為高電平時&#xff0c;芯片“導通”&#xff0c;LE為低電平時芯片“截止”即將輸出狀態“鎖存”&#xff0c;led此時不會改變狀態&#xff0c;所以可通過led對應的八個引腳的電平來控制led的狀態&#xff0c;原理圖分析…

Diskgenius系統遷移之后無法使用USB啟動

前言 本文用于記錄系統遷移中遇到的問題及解決方法&#xff0c;如有不對請指出&#xff0c;謝謝&#xff01; 現象 使用DiskGenius進行系統遷移后&#xff0c;使用USB啟動失敗&#xff0c;反復在品牌logo和黑屏之間切換&#xff0c;期間還會在左上角顯示”reset system“報錯…

使用 Postman 進行 API 測試:從入門到精通

使用 Postman 進行 API 測試&#xff1a;從入門到精通 使用 Postman 進行 API 測試&#xff1a;從入門到精通一、什么是 API 測試&#xff1f;二、Postman 簡介三、環境搭建四、API 測試流程1. 收集 API 文檔2. 發送基本請求示例&#xff1a;發送 GET 請求示例代碼&#xff08;…

Android Studio:Application 和 Activity的區別

Application 和 Activity 是 Android 中非常重要的兩個組件&#xff0c;它們分別負責不同的生命周期管理和應用的不同層次的操作。 Application 是應用級別的生命周期管理&#xff0c;它在整個應用運行時只有一個實例&#xff0c;負責應用的全局初始化和資源管理。Activity 是…

Mac本地體驗LM studio

博主很懶&#xff0c;不愛打字&#xff01; 1、LM studio官網&#xff1a;LM Studio - Discover, download, and run local LLMs 2、下載DMG文件&#xff0c;安裝 3、使用vscode工具&#xff0c;commandshiftH【全局替換功能】&#xff0c;選擇目錄/Applications/LM\ Studio…

SQL Server 數據庫備份指南

SQL Server備份是數據庫維護的日常工作。備份的目的是在發生數據丟失、損壞甚至硬件故障時將數據庫和事務日志恢復到最近的時間點。您可以借助專業的SQL Server備份軟件,操作起來更方便。前提需要安裝SQL Server Management Studio (SSMS)工具。 對于 SQL 數據庫備份,有多種…

我最近在干什么【2】

前言 這系列的上一篇是2024.12.05寫的&#xff0c;現在是2025.02.06&#xff0c;這都兩個月&#x1f914;小久。 不是完整全面的技術分享&#xff0c;話題聚焦個人成長&#xff08;學的技術、了解到的信息、看的書……&#xff09; 方面。文章偏意識流點&#xff0c;單純分享我…

Temperature、Top-P、Top-K、Frequency Penalty詳解

在生成式AI&#xff08;比如ChatGPT&#xff09;中&#xff0c;Temperature、Top-P、Top-K、Frequency Penalty 這些參數用于控制文本生成的多樣性、隨機性和重復度&#xff0c;它們的作用如下&#xff1a; 1. Temperature&#xff08;溫度&#xff09; 作用&#xff1a;控制輸…

4. Go結構體使用

1、結構體的簡介 結構體&#xff08;Struct&#xff09;是編程語言中常見的一種復合數據類型&#xff0c;它將不同類型的數據元素&#xff08;成員&#xff09;組合成一個單一的實體。通過結構體&#xff0c;程序員可以將具有不同類型和性質的信息綁定到一個對象中&#xff0c…

sqlite 查看表結構

在SQLite中&#xff0c;查看表結構通常有以下幾種方法&#xff1a; 使用.schema命令 在SQLite的命令行界面中&#xff0c;你可以使用.schema命令加上表名來查看該表的結構。例如&#xff0c;如果你想查看名為your_table_name的表結構&#xff0c;你可以這樣做&#xff1a; .s…