一種C# Winform的UI處理

效果

·圓角 + 陰影 +突出按鈕

說明

這是一種另類的處理,不是多層窗口 也不是WPF 。這種方式的特點是比較簡單,例如圓角、陰影、按鈕等特別容易修改過。其實就是html + css + DirectXForm。

在VS中如下

圓角和陰影

然后編輯這個窗體的Html模板,例如圓角和陰影的調整可以修改CSS中的

?? ?border-radius: 14px;
?? ?box-shadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.2);

我要想一個小圓角可以改成?border-radius: 6px;

中間的按鈕

中間的按鈕的CSS

.play_btn
{
?? ?position: fixed;
?? ?left: 50%;
?? ?margin-left: -39px;
?? ?cursor: pointer;
?? ?bottom: 22px;?? ?
?? ?display: inline-block;
?? ?width: 78px;
?? ?height: 78px;
?? ?background-color: rgb(255, 255, 255);?? ??
?? ?border-radius: 39px;
?? ?box-shadow: 4px 8px 8px 0px rgba(80, 80, 80, 0.55);?
}
如果你想要個丑點的陰影 ,可以改成

box-shadow: 4px 8px 8px 0px rgba(255, 0, 0, 0.75);

反正就是CSS

窗體可以隨便放控件?

全部代碼

using DevExpress.Utils;
using DevExpress.Utils.Html;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace MP3Cut
{public partial class Form1 : DevExpress.XtraEditors.DirectXForm{public Form1(){InitializeComponent();HtmlElementMouseDown += DemoDirectXForm_HtmlElementDown;}public DxHtmlElement element_mouse = null;void DemoDirectXForm_HtmlElementDown(object sender, DxHtmlElementMouseEventArgs e){var args = e.MouseArgs as DXMouseEventArgs;if (e.Element == null || args == null)return;element_mouse = e.Element;args.Handled= click_proc(element_mouse);}bool click_proc(DxHtmlElement element){if (element == null)return false;string id = element.Id;if ((string.Compare(id, "playbutton", true) == 0)|| (string.Compare(id, "playbutton_img", true) == 0)){DxHtmlImageElement el = (DxHtmlImageElement)(this.FindElementById("playbutton_img"));string src = el.Src;if (string.Compare(src, "play", true) == 0){el.ClassName = "img_pause";el.Src = "pause";                    }else{el.ClassName = "img_play";el.Src = "play";} //directXFormContainerControl1.Refresh();  return true;}return false;}private void Form1_MouseClick(object sender, MouseEventArgs e){}private void directXFormContainerControl1_DoubleClick(object sender, EventArgs e){}private void Form1_MouseDoubleClick(object sender, MouseEventArgs e){if (element_mouse != null){                click_proc(element_mouse);this.Invalidate(true);this.Scale(1.000f);}}private void simpleButton1_Click(object sender, EventArgs e){if (element_mouse != null){click_proc(element_mouse);this.Invalidate(true);this.Scale(1.000f);}}}
}

HTML

<div class="shadowframe"><div class="frame" id="frame"><div class="titlebar"><img class="logo" src="logo" /><div class="title">一個例子</div><div class="searchbox"></div> <img class="button" src="Close" id="closebutton"/></div><div class="content" id="content"></div><div class="footerbar"> <img class="button" src="begin" id="beginbutton"/><div  style="width:200px;display: inline-block;"></div>				<img class="button" src="end" id="enbbutton"/>	</div></div><div class="play_btn" id="playbutton"><img class="img_play" id="playbutton_img" src="play" /></div>	
</div>

CSS

body{
?? ?padding: 30px;
}
.titlebar{
?? ?padding: 11px 12px 11px 11px;
?? ?display: flex;
?? ?flex-direction: row;
?? ?height: 40px;
}
.shadowframe{
?? ?height: 100%;
?? ?border-radius: 6px;
?? ?box-shadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.2);
}
.frame{
?? ?height: 100%;
?? ?display: flex;
?? ?flex-direction: column;
?? ?border-radius: 6px;
?? ?border: 1px solid rgba(0, 0, 0, 0.2);
?? ?background-color: rgb(252, 252, 253);
?? ?box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.15);
}
.footerbar{
?? ?padding: 11px 11px 11px 10px;
?? ?align-items: center; ?
?? ?height: 42px;
?? ?background-color:rgb(249,250,251);
?? ?border-radius: 0px 0px 13px 13px;
?? ?text-align: center;
?? ?border-top: 1px solid rgb(229, 231, 235);
}
.contenttext{
?? ?display: flex;
?? ?justify-content: center;
?? ?align-items:center;
?? ?flex-direction: column;
?? ?align-self: center;
?? ?font: 14px 'Segoe UI';
?? ?color: @DisabledText/0.5;
}
.content{
?? ?flex-grow: 1;
} ??
.panelspace{
?? ?flex-grow:1;
}
.button {
?? ?margin: 0px 4px 0px 4px;
?? ?padding: 8px;
?? ?opacity: 1;
?? ?object-fit: none;
}
.button:hover{
?? ?border-radius: 8px;
?? ?background-color: @ControlText/0.2;
}
.button:active{
?? ?opacity: 0.25;
?? ?border-radius: 8px;
?? ?background-color: @ControlText/0.2;
}
.logo{
?? ?margin:-5px 15px 0px 0px;
?? ?object-fit: none;
}
.searchbox{
?? ?display: flex;
?? ?flex-direction: row;?? ?
?? ?height: 40px;
?? ?flex-grow: 1;
}
.play_btn
{
?? ?position: fixed;
?? ?left: 50%;
?? ?margin-left: -39px;
?? ?cursor: pointer;
?? ?bottom: 22px;?? ?
?? ?display: inline-block;
?? ?width: 78px;
?? ?height: 78px;
?? ?background-color: rgb(255, 255, 255);?? ??
?? ?border-radius: 39px;
?? ?box-shadow: 4px 8px 8px 0px rgba(80, 80,80, 0.55);
? ?
}

.play_btn:hover{?
?? ?background-color: rgb(237,238,239);
}
.play_btn:active{?
?? ?background-color: ?rgb(244,248,249);
}
.img_play {
?? ?width: 42px;
?? ?height: 42px;
?? ?margin-top: 19px;
?? ?margin-left: 24px;
?? ?pointer-events: none;
} ?
.img_pause {
?? ?width: 24px;
?? ?margin-top: 22px;
?? ?margin-left: 27px;
?? ?pointer-events: none;
} ?
.title {
?? ?padding: 5px;
?? ?display: inline-block;
?? ?font: 19px 'Segoe UI';
?? ?font-weight: bold;
?? ?color: rgb(100, 116, 139);
}

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

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

相關文章

HarmonyOS-ArkUI Navigation (導航組件)-第一部分

導航組件主要實現頁面間以及組件內部的界面跳轉&#xff0c;支持在不同的組件間進行參數的傳遞&#xff0c;提供靈活的跳轉棧操作&#xff0c;從而便捷的實現對不同頁面的訪問和復用。 我們之前學習過Tabs組件&#xff0c;這個組件里面也有支持跳轉的方式&#xff0c;Navigati…

華為開源自研AI框架昇思MindSpore應用案例:基于MindSpore框架實現PWCNet光流估計

如果你對MindSpore感興趣&#xff0c;可以關注昇思MindSpore社區 1 環境準備 1.進入ModelArts官網 云平臺幫助用戶快速創建和部署模型&#xff0c;管理全周期AI工作流&#xff0c;選擇下面的云平臺以開始使用昇思MindSpore&#xff0c;可以在昇思教程中進入ModelArts官網 創建…

虛幻基礎:UI

文章目錄 控件藍圖可以裝載其他控件藍圖可以安裝其他藍圖接口 填充&#xff1a;相對于父組件填充水平框尺寸—填充—0.5&#xff1a;改變填充的尺寸填充—0.5&#xff1a;改變與父組件的距離 錨點&#xff1a;相對于父組件的控件坐標系原點&#xff0c;屏幕比例改變時&#xff…

監控平臺——SkyWalking部署

一、環境準備 先下載SkyWalking安裝包&#xff0c;需要注意的是SkyWalking 版本在10.X以上使用的nacos-client是2.X&#xff0c;如果安裝的Nacos版本是1.X就會存在兼容性的問題。由于本人使用的SpringBoot項目是2.7.X版本&#xff0c;安裝的Nacos版本只能是1.X版本的&#xff…

熱門索尼S-Log3電影感氛圍旅拍LUTS調色預設 Christian Mate Grab - Sony S-Log3 Cinematic LUTs

熱門索尼S-Log3電影感氛圍旅拍LUTS調色預設 Christian Mate Grab – Sony S-Log3 Cinematic LUTs 我們最好的 Film Look S-Log3 LUT 的集合&#xff0c;適用于索尼無反光鏡相機。無論您是在戶外、室內、風景還是旅行電影中拍攝&#xff0c;這些 LUT 都經過優化&#xff0c;可為…

自動化工作流工具的綜合對比與推薦

最近收到很多朋友私信我說&#xff1a;“刷短視頻的時候&#xff0c;總是刷到自動化工作流的工具&#xff0c;有好多直播間都在宣傳&#xff0c;不知道哪款工具好”。我花了點時間&#xff0c;做了一下測試&#xff0c;大家可以參考一下&#xff0c;以下內容&#xff1a; 以下…

fircrawl本地部署

企業內部的網站作為知識庫給dify使用&#xff0c;使用fircrawl來爬蟲并且轉換為markdown。 ? git clone https://github.com/mendableai/firecrawl.gitcd ./firecrawl/apps/api/ cp .env.example .env cd ~/firecrawl docker compose up -d 官方&#xff1a; https://githu…

day17 學習筆記

文章目錄 前言一、數組的增刪改查1.resize函數2.append函數3.insert函數4.delete函數5.argwhere函數6.unique函數 二、統計函數1.amax&#xff0c;amin函數2.ptp函數3.median函數4.mean函數5.average函數6.var&#xff0c;std函數 前言 通過今天的學習&#xff0c;我掌握了num…

CentOS 8 Stream 配置在線yum源參考 —— 筑夢之路

CentOS 8 Stream ISO 文件下載地址&#xff1a;http://mirrors.aliyun.com/centos-vault/8-stream/isos/x86_64/CentOS-Stream-8-20240603.0-x86_64-dvd1.isoCentOS 8 Stream 網絡引導ISO 文件下載地址&#xff1a;http://mirrors.aliyun.com/centos-vault/8-stream/isos/x86_6…

網絡原理-TCP/IP

網絡原理學習筆記&#xff1a;TCP/IP 核心概念 本文是我在學習網絡原理時整理的筆記&#xff0c;主要涵蓋傳輸層、網絡層和數據鏈路層的核心協議和概念&#xff0c;特別是 TCP, UDP, IP, 和以太網。 一、傳輸層 (Transport Layer) 傳輸層負責提供端到端&#xff08;進程到進…

EF Core 執行原生SQL語句

文章目錄 前言一、執行查詢&#xff08;返回數據&#xff09;1&#xff09; 使用 FromSqlRaw或 FromSqlInterpolated 方法&#xff0c;適用于 DbSet<T>&#xff0c;返回實體集合。2&#xff09;結合 LINQ 查詢3&#xff09;執行任意原生SQL查詢語句&#xff08;使用ADO.N…

Unity LOD Group動態精度切換算法(基于視錐+運動速度)技術詳解

一、動態LOD技術背景與核心挑戰 1. 傳統LOD系統的局限 靜態閾值切換&#xff1a;僅基于距離的切換在動態場景中表現不佳 視覺突變&#xff1a;快速移動時LOD層級跳變明顯 性能浪費&#xff1a;靜態算法無法適應復雜場景變化 對惹&#xff0c;這里有一個游戲開發交流小組&…

MyBatis復雜查詢——一對一、一對多

目錄 &#xff08;一&#xff09;復雜查詢&#xff1a;1對1關系 【任務】數據庫里有學生表(student)和學生證信息表(student_card)&#xff0c;表結構如下所示&#xff0c;要求使用MyBatis框架查詢所有的學生信息以及每位學生的學生證信息 解決方案1&#xff1a;關聯查詢實現…

【服務端】使用conda虛擬環境部署Django項目

寫在開頭 為了與客戶端的Deep search配合&#xff0c;需要整一個后臺管理來保存和管理deep search的數據資料。選擇前端框架Vue-Vben-Admin Django后臺服務來實現這個項目。 廢話結束&#xff0c;從零開始。。。。 一、環境搭建 1. 安裝 Anaconda 下載 Anaconda&#xff1…

Python爬蟲-爬取大麥網演出詳情頁面數據

前言 本文是該專欄的第50篇,后面會持續分享python爬蟲干貨知識,記得關注。 本文,筆者以大麥網平臺為例。基于Python,實現獲取演出詳情頁面的演出信息。 廢話不多說,具體實現思路和詳細邏輯,筆者將在正文結合完整代碼進行詳細介紹。接下來,跟著筆者直接往下看正文詳細內…

多onnx模型導出合并調研(文本檢測+方向分類+文本識別)

??主頁:吾名招財 ??簡介:工科學碩,研究方向機器視覺,愛好較廣泛… ???簽名:面朝大海,春暖花開! 多onnx模型合并導出調研(文本檢測+方向分類+文本識別) 引言1,嘗試合并兩個模型(文本方向分類+文本識別模型)(并行合并)(1)文本方向分類(2)文本識別模型(…

Flink介紹——實時計算核心論文之S4論文詳解

引入 在上一篇我們對Flink的發展歷史有了全局的了解&#xff0c;下面我們會通讀幾篇分布式實時處理相關的重要論文&#xff0c;從S4到Storm&#xff0c;再從MillWheel到Dataflow&#xff0c;最后到Flink。 通過深入梳理分布式實時處理技術的發展脈絡&#xff0c;了解這些年技…

【商城實戰(97)】ELK日志管理系統的全面應用

【商城實戰】專欄重磅來襲!這是一份專為開發者與電商從業者打造的超詳細指南。從項目基礎搭建,運用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用戶、商品、訂單等核心模塊開發,再到性能優化、安全加固、多端適配,乃至運營推廣策略,102 章內容層層遞進。無論是想…

Linux系統-ls命令

一、ls命令的定義 Linux ls命令&#xff08;英文全拼&#xff1a;list directory contents&#xff09;用于顯示指定工作目錄下之內容&#xff08;列出目前工作目錄所含的文件及子目錄)。 二、ls命令的語法 ls [選項] [目錄或文件名] ls [-alrtAFR] [name...] 三、參數[選項…

游戲被外掛攻破?金融數據遭篡改?AI反作弊系統實戰方案(代碼+詳細步驟)

一、背景與需求分析 隨著游戲行業與金融領域的數字化進程加速,作弊行為(如游戲外掛、金融數據篡改)日益復雜化。傳統基于規則的防御手段已難以應對新型攻擊,而AI技術通過動態行為分析、異常檢測等能力,為安全領域提供了革命性解決方案。本文以游戲反作弊系統和金融數據安…