更改控制項外觀

来源:https://www.cnblogs.com/bibi-feiniaoyuan/archive/2020/03/21/12540619.html
-Advertisement-
Play Games

記錄更改控制項外觀學習 更改控制項外觀有三種方法:屬性、Style、ControlTemplate。 Style:可以一次對多個控制項設置屬性。 ContentTemplate: 自定義Control外觀,利用行為更改外觀。 屬性:<Window x:Class="WpfApp1.MainWindow" ...


記錄更改控制項外觀學習

更改控制項外觀有三種方法:屬性、Style、ControlTemplate。

Style:可以一次對多個控制項設置屬性。

ContentTemplate: 自定義Control外觀,利用行為更改外觀。

屬性:
<Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Grid> <Button FontSize="14" FontWeight="Bold"> <Button.Background> <!--Background類型是個brush LinearGradientBrush繼承brush,因此作為Background值--> <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"> <GradientStop Color="Green" Offset="0.0" /> <GradientStop Color="White" Offset="0.9" /> </LinearGradientBrush> </Button.Background> </Button> </Grid> </Window>
Style:
<Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Window.Resources> <Style TargetType="Button"> <Setter Property="FontSize" Value="14" /> <Setter Property="Background"> <Setter.Value> <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"> <GradientStop Color="Green" Offset="0.0" /> <GradientStop Color="White" Offset="0.9" /> </LinearGradientBrush> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid> <Button FontSize="14" FontWeight="Bold"> </Button> </Grid> </Window>
ControlTemplate:
<Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Window.Resources> <Style TargetType="Button"> <Setter Property="Template"> <!--Template是Button的一個屬性值--> <Setter.Value> <!--ControlTemplate繼承Template--> <ControlTemplate TargetType="Button"> <Border x:Name="Border1" CornerRadius="20" BorderThickness="1" BorderBrush="Black"> <Border.Background> <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"> <GradientStop Color="{Binding Background.Color, RelativeSource={RelativeSource TemplatedParent}}" Offset="0.0" /> <GradientStop Color="White" Offset="0.9" /> </LinearGradientBrush> </Border.Background> <ContentPresenter Margin="2" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True" /> </Border> <ControlTemplate.Triggers> <!--按鈕的IsPressed只讀屬性 當IsPressed為true的時候--> <Trigger Property="IsPressed" Value="true"> <!--設置ContentTemplate里的Border1,只能是當前ContentTemplate的Content--> <Setter TargetName="Border1" Property="Background"> <Setter.Value> <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"> <!--TemplateParent就是當前修飾的button--> <GradientStop Color="{Binding Background.Color, RelativeSource={RelativeSource TemplatedParent}}" Offset="0.0" /> <GradientStop Color="DarkSlateGray" Offset="0.9" /> </LinearGradientBrush> </Setter.Value> </Setter> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid> <Button FontSize="14" FontWeight="Bold" Background="Yellow" > </Button> </Grid> </Window>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • "本文原文鏈接地址:http://nullpointer.pw/mapstruct%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.html" 前言 按照日常開發習慣,對於不同領域層使用不同JavaBean對象傳輸數據,避免相互影響,因此基於資料庫實體對象User衍生出比如U ...
  • 大家在學習Python的時候,有人會問“Python要學到什麼程度才能出去找工作”,對於在Python培訓機構學習Python的同學來說這都不是問題,因為按照Python課程大綱來,一般都不會有什麼問題,而對於自學Python來說,那就比較難掌握,冒然出去找工作非常容易受打擊,從而失去學習Pytho ...
  • 1、Go 語言最主要的特性 自動垃圾回收 更豐富的內置類型 函數多返回值 錯誤處理 匿名函數和閉包 類型和介面 併發編程 反射 語言交互性 2、$GOPATH目錄約定有三個子目錄 src存放源代碼(比如:.go .c .h .s等) 按照golang預設約定,go run,go install等命令 ...
  • 關鍵詞:鄭州 二本 物理專業 先前端實習生 後Java程式員 更多文章收錄在碼雲倉庫:https://gitee.com/bingqilinpeishenme/Java Tutorials 前言 沒有正式復工,就一直在老家待著,已經很長時間沒有在三月份時候待在老家了,好久好久,從08年去縣城上高中開 ...
  • 問題背景 使用mybatis-plus進行資料庫交互,預設開啟null不更新設置,在新增數據後,編輯頁面將欄位值清除後(date類型,int類型,為避免預設值傳入,model全部使用包裝類型初始化為null)無法將null值更新至資料庫 單個解決方案 通過UpdateWrapper的set方法強制字 ...
  • Spring 整合 Mybatis 在開始使用 MyBatis Spring 之前,需要先熟悉 Spring 和 MyBatis 這兩個框架和有關它們的術語。 MyBatis Spring 需要以下版本: | MyBatis Spring | MyBatis | Spring 框架 | Spring ...
  • Startup構造函數 ConfigureServices方法 Configure方法 在ConfigureWebHostDefaults中直接配置服務和請求管道 ASP.NET Core一般使用Startup類來進行應用的配置。在構建應用主機時指定Startup類,通常通過在主機生成器上調用Web ...
  • 前言 為什麼在開發中,介面文檔越來越成為前後端開發人員溝通的樞紐呢? 隨著業務的發張,項目越來越多,而對於支撐整個項目架構體系而言,我們對系統業務的水平拆分,垂直分層,讓業務系統更加清晰,從而產生一系統平臺和系統,並使用介面進行數據交互。因此可見,業務的不斷發展,介面不斷增多,很多介面各自寄宿在不同 ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...