1. 程式人生 > >【C#】【WPF】Button按鈕動態設定Background背景顏色

【C#】【WPF】Button按鈕動態設定Background背景顏色

學習筆記:

在XAML中給Button設定顏色大家都懂的,本篇只是記錄用C#程式碼動態生成的按鈕設定Background背景顏色。

這裡寫圖片描述

new一個Button,設定Background時可看到該屬性型別是System.Window.Media.Brush Control.Background,如果直接Background = new Brush()會像上圖那樣報錯,因為這個Bursh類是個抽象類。

解決辦法:
在Button類上按F1,在MSDN中可以看到Button在XAML和C#中的用法。
這裡寫圖片描述

注意,直接寫Brush指的是System.Drawing.Brush,而這裡需要的是System.Windows.Media.Brushes。

Background = System.Windows.Media.Brushes.White

如果想給按鈕背景設定為一張圖片:

Button btn = new Button();
ImageBrush brush = new ImageBrush();
brush.ImageSource = new BitmapImage(new Uri("Images/test.png", UriKind.Relative));
btn.Background = brush;

重要參考:

相關推薦

C#WPFButton按鈕動態設定Background背景顏色

學習筆記: 在XAML中給Button設定顏色大家都懂的,本篇只是記錄用C#程式碼動態生成的按鈕設定Background背景顏色。 new一個Button,設定Background時可看到該屬性型別是System.Window.Media.Brush C

C++/數據結構單鏈表的基本操作

clear default als troy pub 插入 else fonts pac #pragma once #ifndef _CLIST_H_ #define _CLIST_H_ #include <iostream> #include <

HTTP模擬工具C#/Winform源碼、Json綁定TreeView控件、使用了MetroModernUI、RestSharp、Dapper.Net、Newtonsoft.Json、SmartThreadPool這幾個主要開源框架

type form num -m 請求 resource dap bool dev HTTP模擬工具 開發語言:C#/Winform開發工具:Visual Studio 2017數據庫: SQLite使用框架:界面-MetroModernUI

C++探索之旅第二部分第一課:面向對象初探,string的驚天內幕

信息技術 false cli 方法 復雜 weixin include 命令 就是 內容簡單介紹 1、第二部分第一課:面向對象初探。string的驚天內幕 2

C#復習總結匿名類型由來

數據類型 over 無效 訪問性 屬性。 知乎 私有 不能 默認構造函數 1 屬性 這得先從屬性開始說,為什麽外部代碼訪問對象內部的數據用屬性而不是直接訪問呢,這樣豈不是更方便一些,但是事實證明直接訪問是不安全的。那麽,Anders Hejlsberg(安德斯&mid

C#學習之路001.基本操作

arp main cti 字符 thread 程序 AI 報錯 float 001【HelloWorld】分析代碼塊 //這裏是註釋 下面是引入命名空間 using System; using System.Collections.Generic; using Syst

將文件拖曳到窗體上, 並獲取其完整路徑 C++ Builder下實現

pat ext stc fff led CP tle 聲明 net 1. 在窗體的頭文件.h裏聲明處理函數和消息映射, 如: [cpp] view plain copy class TForm1 : public TForm {

C#復習總結細說委托

protected 希望 百度百科 內存 sting lin baidu 調用約定 multicast 1 前言 前幾天看到博客園一個前輩寫了一篇文章用“五分鐘重溫委托,匿名方法,Lambda,泛型委托,表達式樹”,文章寫的非常好,推薦閱讀一下,正

C#復習總結細說匿名方法

target [] targe left 沒有 如果 連接 program ont 1 前言 本系列會將【委托】 【匿名方法】【Lambda表達式】 【泛型委托】 【表達式樹】 【事件】等基礎知識總結一下。(本人小白一枚,有錯誤的地方希望大佬指正) 系類1:細說委托

C#復習總結細說泛型委托

聲明 sys red 合成 delegate -s 返回 line ron 1 前言 本系列會將【委托】 【匿名方法】【Lambda表達式】 【泛型委托】 【表達式樹】 【事件】等基礎知識總結一下。(本人小白一枚,有錯誤的地方希望大佬指正) 系類1:細說委托 系類2:

C陷阱與缺陷邊界計算與不對稱邊界

前言 本文與為什麼C語言從0開始編號搭配實用更佳。 如有不足還請指正! 正文 如果一個數組有10個元素,那麼這個陣列下表的允許取值範圍是什麼呢? 下面程式碼1,這段程式碼的執行結果是什麼?為什麼? #include <stdio.h&g

C程式編譯連結gcc使用命令介紹 gcc的使用簡介與命令列引數說明

1.gcc或者g++安裝rpm -qa|grep gcc ==>檢查gcc是否安裝gcc -v ==>檢查gcc版本 編譯器會在可執行檔案中植入一些資訊,可執行檔案會變大。一般開發時候使用 -g ,編譯一個 “release 版本” 時不使用 -g 編譯。gcc如果是最新的則不重

C程式編譯連結gcc使用命令介紹 GCC編譯器編譯連結  

1.gcc安裝 rpm -qa|grep gcc ==>檢查gcc是否安裝 gcc -v ==>檢查gcc版本 yum -y install gcc ==>安裝gcc  2.基本語法 gcc最基本的用法是:gcc [options]

C++學習記錄2CC++的升級

C++繼承了所有的C特性; C++在C的基礎上提供了更多的語法和特性; C++的設計目標是執行效率和開發效率(比C語言還高)的統一。 (C++中++的體現)C++是C語言的進化和升級。最重要的是兩個方面,其一是型別的加強(型別檢查更嚴格),其二是天生面向物件的支援(內建天生支援面向物件軟

C++學習記錄1學習C++的意義

UINX誕生之初使用匯編語言編寫的。隨著UINX的發展,組合語言成為了其發展的掣肘。如何提高UINX的開發效率呢? 在1971年,K&D來發出C語言,由解釋型語言(B語言)變成編譯型語言。 C語言天生就是為了開發作業系統而存在的,其目標是高效,最終程式執行效率高。但是起初是用來編寫U

C++程序不輸出到底是什麽造成了程序不輸出

print 原因 文章 spa xxx cpp ora 問題 ext (ubuntu 16.04) 最近做題的時候,經常莫名其妙地,程序寫的明明沒毛病但是就是輸出不了,氣得我呀 然後某一次突然發現了原因,竟然是輸出之後沒有加endl或者空格! 例如: cout<<

c語言入門軟體dev新建工程、執行和除錯

dev新建工程、執行和除錯 上一次安裝中,曾讓你們把安裝路徑記下來,現在我們可以找到安裝路徑,拷貝出裡面的help資料夾,開啟到這裡,我們將比較官方的形式來了解以下dev的使用。 1.Editing 在編輯之前,我們需要新建一個dev的工程和擬寫一個簡單的程式

C++模版之旅神奇的Traits

介紹traits的文章很多,但感覺大部分文章的說明都很晦澀難懂,把一個並不很複雜的C++模板的應用描述的過於複雜。忍不住想把自己的理解跟大家分享一下,或許我也只是掌握了一點traits的皮毛而已,但也希望這些皮毛能略微抓住你的眼球,帶給你一些啟發。 首先,介紹traits前

c++遇坑警告strcpy_s函式的使用

一、函式原型 ACRTIMP errno_t __cdecl strcpy_s( _Out_writes_z_(_SizeInBytes) char* _Destinatio

C++ Builder 6.0設定DBGrid單元顯示格式

1.設定列的展示格式 DBGrid的DataSource設定一個ADOquery。 雙擊ADOquery,在彈出的欄位編輯器中,新增要設定的欄位。 點選新增欄位,設定displayformat屬性。例如展示為,帶有三位小數。0.000 2.設定行高 ((TStringGrid