无css边框圆角角窗体的四个角该如何拖拽改变窗体

&Window x:Class="ImportData.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Background="{x:Null}" WindowStyle="None" MouseDown="Window_MouseDown" AllowsTransparency="True"&
&Border CornerRadius="8,8,8,8" Background="Black" Height="Auto"&&/Border&
窗体移动须加上
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
if(e.LeftButton==MouseButtonState.Pressed)
DragMove();
WPR-007:WPF中窗体的透明设置
一般使用WindowStyle=,Background=,AllowsTransparency,Opacity来进行设置。
1、设置Opacity控制整个窗口的透明,包括上面的控件
Window ...
WPF 创建无边框的圆角窗口
如题所述,要创建一个没有
Wpf Border圆角
//错误的用法 这样子是不会出现圆角的,哪怕你把CornerRadius设置到1000
//错误的用法 这样子是不会出现圆角的...
WPF(1 ) 圆角窗体
有两种情况,第一种事设置window的background是transparent;另一种情况是改变窗听的region
然后再放置一个圆角的border或者rectangle。
wpf 设置窗口的四角为 圆角
wpf 设置窗口的四角为 圆角
在窗口的 SizeChanged 事件中,加入一下代码
System.Windows.Rect r = new System.Windows.Rect(e.NewS...
WPF中制作无边框窗体
众所周知,在WinForm中,如果要制作一个无边框窗体,可以将窗体的FormBorderStyle属性设置为None来完成。如果要制作成异形窗体,则需要使用图片或者使用GDI+自定义绘制。那么,在WP...
WPF无边框、窗体初始化位置与可拖拽窗体的解决方案
1.WPF的默认样式是有边框的,为了去除窗体的边框
【WPF无边框窗体】
WPF是Windows操作系统中一次重大变革,与早期的GDI+/GDI不同。
WPF是基于DirectX引擎的,支持GPU硬件加速,在不支持硬件加速时也可以使用软件绘制。
利用WPF创建无边框的窗...
WPF中的无边框透明可缩放窗体
WPF中的无边框透明窗体,由于没有边并且透明,窗体无法进行缩放操作,今天来讲解如何解决这个问题。先说一下思路,我们先手为该窗体添加4个边,4个角用于缩放操作,然后再为他们写事件,完成拖放操作。xaml...
利用WPF创建含多种交互特性的无边框窗体
本文介绍利用WPF创建一个含有以下特性的窗口:有窗口阴影,比如QQ窗口外围只有几像素的阴影;支持透明且无边框,为了自行美化窗口通常都会想到使用无边框窗口吧;可正常最大化,WPF无边框窗口直接最大化会直...
没有更多推荐了,对于QT的初学者来说,去除边框,实现窗口透明度可能是美化GUI的基本要求,笔者综合了网上的代码,进行了总结:
无边框(标题栏)的窗口
//无边框(标题栏)的窗口
QApplication a(argc, argv);
MainWindow w;
w.setWindowOpacity(1);
w.setWindowFlags(Qt::FramelessWindowHint);
w.setAttribute(Qt::WA_TranslucentBackground);
setWindowOpacity(1)这一句代码实现窗口的透明效果,函数里面的参数是透明度,1表示不透明
setWindowFlags(Qt::FramelessWindowHint);隐藏窗口的标题栏和边框
背景刷成黑色,前景色设为白色。
方法一、paltette方式,经测试,该方法不会影响到其他控件,推荐使用
QPalette bgpal = palette();
bgpal.setColor (QPalette::Background, QColor (0, 0 , 0, 255));
//bgpal.setColor (QPalette::Background, Qt::transparent);
bgpal.setColor (QPalette::Foreground, QColor (255,255,255,255));
setPalette (bgpal);
方法二、stylesheet方式 影响子控件的方法是:
setStyleSheet ("background-color: rgb(0,0,0);color: rgb(255,255,255);");
不影响子控件的方法是:
setStyleSheet ("venus--TitleBar {background-color: rgb(0,0,0);color: rgb(255,255,255);}");
圆角控件 用stylesheet方式
setStyleSheet ("border-radius:10");
RoundRectWin::RoundRectWin() { QPalette p = palette(); QPixmap img("roundrect.png");
QBitmap mask("roundrect_mask.png");
p.setBrush(QPalette::Window, QBrush(img));
setPalette(p);
setMask(mask);
resize(img.size());
//setWindowFlags(Qt::FramelessWindowHint);//这句会去掉标题栏 } 注意:mask的图多余部分设为白色
半透明窗口
窗口整体透明,但是窗体上的控件不透明。 通过设置窗体的背景色来实现,将背景色设置为全透。 试验效果:
QPalette pal = palette();
pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal);
窗体标题栏不透明;
窗体客户区上的控件不透明,QLabel控件只是字显示,控件背景色透明; 窗体客户区完全透明。
另外从网上看到的方法:
setAttribute(Qt::WA_TranslucentBackground, true);
试验的结果是类似于上面的方法,但有时候窗体会被一些杂色斑点填充,未找到原因。
窗口及其上面的控件都半透明:
setWindowOpacity(0.7)
试验效果:窗口及控件都半透明。注意不能够setWindowFlags(Qt::FramelessWindowHint);要不就不起作用
窗口整体不透明,局部透明:
在Paint事件中使用Clear模式绘图。
void TestWindow::paintEvent( QPaintEvent* )
{ QPainter p(this);
p.setCompositionMode( QPainter::CompositionMode_Clear );
p.fillRect( 10, 10, 300, 300, Qt::SolidPattern );
试验效果:绘制区域全透明。如果绘制区域有控件不会影响控件。
以上实验均是基于Directfb的Qte测试。在Linux下及Windows下效果会略有不同。 比如在Windows下第3个实验,绘制区域就是一个黑窟窿,如果Window本身半透,则是Window下面的内容加上半透效果,不是全透明效果。
Qt美化界面的心得整理
最近在美化QT,一直对纯代码编写和美化界面能力拙急。网上搜了很多很多资料,但由于那个庞大的工程还没完成,先将网上的资料整理一下,有一些没用到的,留着以后看。等我的界面美化完之后再po上来~
QT 修改控件背景颜色
一. 背景刷成黑色,前景色设为白色。 方法一、paltette方式,经测试,该方法不会影响到其他控件,推荐使用 QPalette bgpal = palette();
bgpal.setColo...
Qt之设置QWidget背景色(4种方法,推荐QWidget::setAutoFillBackground)
QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色。
Qt中窗口背景的设置,下面介绍三种方法。
1.使用QPalette
2.使用Style Sh...
Qt 的一些心得(背景设置,圆角,半透明)
一. 背景刷成黑色,前景色设为白色。 方法一、paltette方式,经测试,该方法不会影响到其他控件,推荐使用 QPalette bgpal = palette();
bgpal.setColo...
QT 窗体透明
【引用】Qt中设置窗口的透明
|字号 订阅
本文引用自/yl守望/love《Qt中设置窗口的透明》一、将Qt窗口嵌入到桌面中。
声明一个最简单的类:
1.QDialog,QWidget实现圆角,圆弧边框
注意设置使用setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint),去掉dialog的标题栏显...
简述UI设计是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的UI设计不仅是让软件变得有个性、有品位,还要让软件的操作变得舒适简单、自由,充分体现软件的定位和特点。爱美之心人皆有之。其实软件界面...
Qt Quick 2.0 中 QQuickView代替了1.0中的QDeclarativeView。
无边框窗口代码如下:
QT的常规对话框包括标题栏、图标Icon、关闭按钮,如下图所示:
在有些场景中,我们可能需要对标准对话框进行美化工作,比如,去掉标题栏和边框,并使整体表现出透明色的样子,如下图所示:
没有更多推荐了,&&&& VS足够强大,强大到只需动动鼠标就可以写出个基本的界面出来,但是其自带的控件都是千篇一律的样式,对于追求完美的我而言,实在是忍不下去了,只好自己亲自动手对其进行改造----继承已有的控件,再对其相关的消息或事件进行处理。窗体Form作为界面的主体部分,必先对其进行美化,在窗体自绘的过程中,需要使用到GDI+,如若对GDI+不是很了解的同学可移步我的或者搜索下相关的介绍。
这篇文章将要介绍到的内容:
实现效果演示:
一:窗体圆角的处理
&&& 对于无边框窗体圆角矩形的处理,我这里采用的是使用API函数,相比于自己用GDI+写的处理圆角的函数,效果要稍微好点,至少线条在圆角处过渡的比较平滑,为了便于复用,我把其封装到窗体自绘辅助类RenderHlper的SetFormRoundRectRgn函数中:
/// &summary&
/// 设置窗体的圆角矩形
/// &/summary&
/// &param name="form"&需要设置的窗体&/param&
/// &param name="rgnRadius"&圆角矩形的半径&/param&
public static void SetFormRoundRectRgn(Form form, int rgnRadius)
int hRgn = 0;
hRgn = Win32.CreateRoundRectRgn(0, 0, form.Width + 1, form.Height + 1, rgnRadius, rgnRadius);
Win32.SetWindowRgn(form.Handle, hRgn, true);
Win32.DeleteObject(hRgn);
&此处需要把所需要的API函数引用到类Win32中,引用的时候注意添加 System.Runtime.InteropServices 命名空间:
[DllImport("gdi32.dll")]
public static extern int CreateRoundRectRgn(int x1, int y1, int x2, int y2, int x3, int y3);
[DllImport("user32.dll")]
public static extern int SetWindowRgn(IntPtr hwnd, int hRgn, Boolean bRedraw);
[DllImport("gdi32.dll", EntryPoint = "DeleteObject", CharSet = CharSet.Ansi)]
public static extern int DeleteObject(int hObject);
重写窗体的OnSizeChanged事件,并在此事件中调用SetFormRoundRectRgn,此处的Radius参数为定义的窗体圆角半径属性:
protected override void OnSizeChanged(EventArgs e)
base.OnSizeChanged(e);
RenderHelper.SetFormRoundRectRgn(this, Radius);
二:无边框窗体大小的改变与移动
&&&&& 当把窗体的FormBorderStyle属性调整为FormBorderStyle.None时,此时,窗体的大小改变不了,同时窗体不能移动。要想实现无边框窗体大小的改变与移动,可采用如下方法:
(1)重写窗体的过程WndProc:
&主要是对WM_NCHITTEST消息进行处理,根据事件的发生位置来进行不同方向箭头的调整,窗体大小改变与移动的函数:
//调整窗体大小
private void WmNcHitTest(ref Message m)
int wparam = m.LParam.ToInt32();
Point mouseLocation = new Point(RenderHelper.LOWORD(wparam),RenderHelper.HIWORD(wparam));
mouseLocation = PointToClient(mouseLocation);
if (WindowState != FormWindowState.Maximized )
if (CanResize == true)
if (mouseLocation.X & 5 && mouseLocation.Y & 5)
m.Result = new IntPtr(Win32.HTTOPLEFT);
if (mouseLocation.X & Width - 5 && mouseLocation.Y & 5)
m.Result = new IntPtr(Win32.HTTOPRIGHT);
if (mouseLocation.X & 5 && mouseLocation.Y & Height - 5)
m.Result = new IntPtr(Win32.HTBOTTOMLEFT);
if (mouseLocation.X & Width - 5 && mouseLocation.Y & Height - 5)
m.Result = new IntPtr(Win32.HTBOTTOMRIGHT);
if (mouseLocation.Y & 3)
m.Result = new IntPtr(Win32.HTTOP);
if (mouseLocation.Y & Height - 3)
m.Result = new IntPtr(Win32.HTBOTTOM);
if (mouseLocation.X & 3)
m.Result = new IntPtr(Win32.HTLEFT);
if (mouseLocation.X & Width - 3)
m.Result = new IntPtr(Win32.HTRIGHT);
m.Result = new IntPtr(Win32.HTCAPTION);
&重写窗体过程:
protected override void WndProc(ref Message m)
switch (m.Msg)
case Win32.WM_NCHITTEST:
WmNcHitTest(ref m);
base.WndProc(ref m);
&(2)对于仅仅只想实现窗体的移动而不改变窗体的大小,可以重写OnMouseDown事件中发送HTCAPTION消息来实现无边框窗体的移动,具体的实现代码如下:
/// &summary&
/// 移动窗体
/// &/summary&
public static void MoveWindow(Form form)
Win32.ReleaseCapture();
Win32.SendMessage(form.Handle, Win32.WM_NCLBUTTONDOWN, Win32.HTCAPTION, 0);
调用窗体移动函数:
protected override void OnMouseDown(MouseEventArgs e)
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left)
Render.MoveWindow(this);
三:窗体边框的绘制与边框阴影的实现
&边框的绘制:边框的绘制使用用PS制作好的图片来进行贴图操作,在贴图的过程中使用九宫图贴图方法,保证此边框图片能满足任何大小的窗体。
&窗体边框的实现:此部分主要涉及到对的了解,只要在窗口的ClassStyle添加此样式即可,关键代码如下:
protected override CreateParams CreateParams
CreateParams cp = base.CreateP
if (!DesignMode)
cp.ClassStyle |= (int)
ClassStyle.CS_DropSHADOW;
四:系统按钮的绘制与事件处理
&此部分是所有部分中最难的部分,在此部分中既要实现系统按钮不同状态下(鼠标操作改变按钮状态)的绘制,还有对其相应的事件进行处理,所以我创建了2个类:SystemButton类和SystemButtonManager类。SystemButton类表示系统按钮类,而SystemButtonManager的功能是对系统按钮各个状态与事件的管理。类SystemButtonManager的类图如下所示:
&属性、方法、事件的功能介绍如下表:
&&&& 对于类SystemButtonManager,主要是管理三个系统按钮的状态与事件,其他特别要介绍的是定义的系统按钮状态索引器,根据提供的索引来获取或者设置按钮的当前状态。
五:窗体标题栏的绘制
&&&&&标题栏的绘制主要涉及到窗体Icon图标的绘制与窗体标题的绘制,绘制的过程中定义了2个属性:IconRect,TextRect,分别对应着图标的坐标矩形与窗体标题的坐标矩形,图标与标题的绘制在这个矩形中绘制,需要提醒的时,图标的绘制需要注意到是否窗体的ShowIcon属性。
六:解决窗体闪烁的问题
&&&& 在窗体的自绘过程中,当调整窗体的大小等操作而触发窗体重绘,此时窗体的闪烁现象更为明显,相信大部分同学在自定义控件的过程中或多或多的出现这种问题,对于此问题,每个人又不同的解决方法,这里我提供四种解决方案类解决窗体的闪烁:
方法一:第一个容易想到的是采用双缓冲机制来进行图形的绘制,对双缓冲不了解的同学可以参考下我的另外一篇文章。
方法二:当将样式添加到窗体的ClassStyle样式中可以明显的解决窗体闪烁的现象。代码见本文的第三部分--窗体边框的绘制与边框阴影的实现。
方法三:当窗体进行重绘时,对消息进行忽略,应用代码如下:
protected override void WndProc(ref Message m)
switch (m.Msg)
case Win32.WM_ERASEBKGND:
m.Result = IntPtr.Z
base.WndProc(ref m);
方法四:将样式添加到窗体的ExStyle样式中,此方法对解决窗体挂有很多子控件时窗体闪烁的现象特别明显,应用代码如下:
protected override CreateParams CreateParams
CreateParams cp = base.CreateP
if (!DesignMode)
cp.ExStyle |= (int)WindowStyle.WS_CLIPCHILDREN;
注:本博客所有文章均为作者个人原创&,如若转载,请标记文章出处:&& 苦笑。
阅读(...) 评论()wpf 设置窗口的四角为 圆角
在窗口的 SizeChanged 事件中,加入一下代码
System.Windows.Rect r = new System.Windows.Rect(e.NewSize);
RectangleGeometry gm = new RectangleGeometry(r, radiusX, radiusX);
((UIElement)sender).Clip =
--------------------------------------------------
顺便加一点
double ww = this.ActualW
double wh = this.ActualH
可以获取到窗口实际呈现后的大小尺寸 。
WPF 创建无边框的圆角窗口
如题所述,要创建一个没有
c# 对窗体绘制圆角边框
对于form, 当BorderStyle = None时, 绘制圆角, 需要使用graphicspath的AddArc方法。
WPF圆角透明无边框窗体
Wpf Border圆角
//错误的用法 这样子是不会出现圆角的,哪怕你把CornerRadius设置到1000
//错误的用法 这样子是不会出现圆角的...
WPF(1 ) 圆角窗体
有两种情况,第一种事设置window的background是transparent;另一种情况是改变窗听的region
然后再放置一个圆角的border或者rectangle。
*详细原因:
交 &em&WPF圆角窗口&/em& 自动剪切内容 不超出 CornerRadius 3积分 立即下载 ...
C#中窗体Form的美化窗体&em&圆角&/em&的处理 C#中窗体Form的美化 VS足够强大,强大到只需动动鼠标就可以写出个基本的界面出来,但是其自带的控件都是千篇一律的样式,对于追求...
&em&wpf&/em&圆形按钮,圆角按钮,透明按钮,玻璃按钮,水晶按钮,带阴影按钮,立体按钮... &em&wpf&/em&圆形按钮,圆角按钮,透明按钮,玻璃按钮,...&em&WPF圆角窗口&/em& 自动剪切内容 不超出 CornerRadiu...
现在开发一个窗体程序,经常要求用圆角窗体。而在Windows 经典外观下,直接写出来的窗体却是方型的。在windows 7、windows server2008 的外观下,就已经是圆角的了。
转自:wpf中有圆角的listbox
&{x:Type ListBox}&&
&Template&&
没有更多推荐了,&>&C#实现窗体圆角的一种方法
C#实现窗体圆角的一种方法
上传大小:238KB
C#使用Rectangle绘制实现的圆角。 并带有最大化,最小化, 关闭, 拖动的标题控件。
综合评分:4
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有31条
一般般。。
试用一下,不错值得学习
不错可以借鉴
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
C#实现窗体圆角的一种方法
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
yysyangyangyangshan
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
C#实现窗体圆角的一种方法

我要回帖

更多关于 c#去掉窗体背景的圆角 的文章

 

随机推荐