WPF 设置 圆角 例如Grid、Button、TextBox、PasswordBox

WPF 圆角按钮的实现 在 WPF 中,通过自定义按钮的样式,我们可以轻松地实现圆角按钮。这种方法不仅简单,而且具有很高的灵活性。你可以根据自己的设计需求,调整按钮的圆角大小、背景颜色、边框颜色等属性,以达到最佳的视觉效果。希望这篇文章对你有所帮助!如果你有任何疑问或建议,欢迎在评论区留言。 阅读详情
AI摘要

这篇博客介绍了如何在WPF中设置窗口、按钮和文本框的圆角效果。通过修改XAML代码,分别展示了如何为窗口添加透明背景和圆角,定制具有圆角和自定义背景颜色的按钮,以及创建带有圆角边框的TextBox和PasswordBox。在编写XAML时需要注意标签的正确使用和格式一致性,以避免报错。

1、背景设置圆角:

<Window x:Class="ESPCPS.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:ESPCPS"
        mc:Ignorable="d"
        Title="系统" Height="500" Width="800"  WindowStyle="None"  AllowsTransparency="True" Background="Transparent" OpacityMask="White" ResizeMode="NoResize" MouseMove="Window_MouseMove" >
    <Border BorderThickness="1" BorderBrush="Gray"  CornerRadius="25,25,25,25">
        <Grid Width="800" Margin="0" Height="500"  >
            <Border BorderThickness="0" CornerRadius="25,25,25,25">
                <Border.Background>
                    <ImageBrush ImageSource="beijing.jpg"/>
                </Border.Background>
            </Border>
        </Grid>
    </Border>
</Window>

 2、设置按钮

 直接在XAML里更改

<Button x:Name="but1" Content="软件介绍" HorizontalAlignment="Left" Margin="126,356,0,0" VerticalAlignment="Top" Width="128" Click="Button_Click" FontSize="20" Height="35" >
                <Button.Template>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="1" CornerRadius="10">
                            <Border.Background>#FF8EB4D4</Border.Background>
                            <ContentPresenter Content="{TemplateBinding ContentControl.Content}" HorizontalAlignment="Center" VerticalAlignment="Center" />
                        </Border>
                    </ControlTemplate>
                </Button.Template>
            </Button>

效果如下:

 可能出现的问题:

因为没系统学过如何编写XAML内容,所以在格式上出现了很大的笑话

一直报错就需要检查一下书写问题

比如<Border ……> </Border>

或者<Border ……/>

两种格式都行,不能混用!!!

而且里面的比如背景颜色或者位置啊按钮大小啊都是可以更改的,可以试一试。


3、设置TextBox圆角

<TextBox HorizontalAlignment="Left" Height="24" Margin="43,192,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="98">
                <TextBox.Resources>
                    <Style TargetType="{x:Type Border}">
                        <Setter Property="CornerRadius" Value="8"/>
                        <Setter Property="BorderBrush" Value="#c1d0dc"/>
                    </Style>
                </TextBox.Resources>
            </TextBox>


4、PasswordBox设置圆角

 <PasswordBox x:Name="t2" HorizontalAlignment="Left" Margin="183,150,0,0" VerticalAlignment="Top" Width="114" Height="26" BorderBrush="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" FontSize="18" Password="&#xD;&#xA;">
                <PasswordBox.Resources>
                    <Style TargetType="PasswordBox">
                        <Setter Property="PasswordChar" Value="●"/>
                        <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
                        <Setter Property="HorizontalContentAlignment" Value="Left"/>
                        <Setter Property="Padding" Value="1"/>
                        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
                        <Setter Property="AllowDrop" Value="true"/>
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="PasswordBox">
                                    <Border CornerRadius="8" x:Name="Bd" Background="White" BorderBrush="#c1d0dc" BorderThickness="1" OpacityMask="{x:Null}">
                                        <ScrollViewer SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" x:Name="PART_ContentHost" Template="{DynamicResource ScrollViewerControlTemplate1}"/>
                                    </Border>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </PasswordBox.Resources>
            </PasswordBox>

实现效果

 

 

WPF Button按钮设置圆角 这里介绍Button按钮设置圆角的两种方法第一种:最简单的方法。 第二种:重写Template,优点是这样自由度更高,可以改更多的显示效果,缺点是Triggers你也得重新写一下,如果只是想要个圆角的话,推荐第一种。 阅读详情

相关推荐

C# WPF实战:5分钟搞定一个炫酷登录界面(附完整XAML代码)

本文提供了一份完整的C# WPF登录界面开发实战指南。通过清晰的步骤,详细讲解了如何使用XAML构建现代二分屏布局,实现MVVM模式下的数据绑定与命令处理,并解决PasswordBox绑定等常见问题。文章附带了完整的样式代码,帮助开发者快速创建美观、可复用的WPF界面。

weixin_29230773的博客 200

【WPF】Button 圆角/圆形按钮

本文通过改写WPF Button 控件默认模板,实现圆角/圆形按钮

qq_37284394的博客 9948

WPF实战:5分钟搞定一个炫酷登录界面(附完整XAML代码)

本文提供了一份详细的WPF登录界面开发实战指南。通过清晰的步骤讲解和完整的XAML代码示例,指导开发者快速构建一个兼具现代美感与流畅交互的登录窗口,涵盖布局设计、控件样式美化、动画效果添加及核心功能实现,助力提升WPF桌面应用的用户体验。

q1w3e5r7t9y的博客 293

wpf 设置textbox圆角 最方便的方法

<Style TargetType="TextBox"> <Style.Resources> <Style TargetType="{x:Type Border}"> <Setter Property="CornerRadius" Value="5"/> <Setter Propert..

weixin_41440306的博客 2982

WinUI3入门指南:从零构建现代化Windows桌面应用

在Windows桌面应用开发领域,UI框架的演进始终是开发者关注的核心。从传统的WinForms、WPF到现代的UWP,微软不断推动着开发体验的革新。WinUI3作为新一代原生UI框架,其核心原理在于实现了UI框架与操作系统版本的解耦,通过NuGet包独立更新,解决了长期困扰开发者的系统依赖问题。这一技术变革为Windows应用带来了显著的工程价值:开发者可以更灵活地采用现代化设计语言,同时保持与现有.NET生态的紧密集成。在实际应用场景中,无论是需要应用商店分发的打包应用,还是追求部署灵活性的非打包应用,

weixin_33924220的博客 489

C#WPF设置圆角按钮样式

本文实例演示如何设置样式实现圆角按钮并修改鼠标进入和按下的样式。

qq_30725967的博客 1729

WPF任意控件圆角

<Grid HorizontalAlignment="Center" VerticalAlignment="Center"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition/> </Grid.RowDefinitions> <Grid Grid.Row="1"&...

yfyang 4454

【OpenCV】背景替换(opencv、python),照片、证件照的背景替换(抠图)

目录步骤:导入库1、读入将要抠图的图片2、create一个带颜色域的mask3、通过mask使得原图只显示汽车,即抠出所需要的部分4、将要替换掉的图像resize或裁剪到和上述图片一样的大小5、将该图片预留出将要重叠上的部分,即将mask部分改为(0,0,0)6、通过和运算使得两部分图片mask部分替换7、最后保存图片 步骤: 导入库 import matplotlib.pyplot as plt import matplotlib.image as mpimg import numpy as np imp

weixin_41729258的博客 4362

WPF PasswordBox 水印提示实现:自定义模板+事件,改最少代码

在UI交互设计中,为输入框添加提示文本(Watermark)是提升用户体验的常用手段,但WPF平台下的PasswordBox却因缺乏内置PlaceholderText属性而让开发者颇为棘手。更关键的是,其Password属性并非依赖属性,无法直接支持Binding和DataTrigger,这导致常规的样式绑定方案在密码框上失效。本文从控件模板(ControlTemplate)的底层原理出发,剖析PasswordBox默认结构中的PART_ContentHost与事件机制,提出一种基于自定义ControlTe

weixin_33782386的博客 412

ZYNQ RFSoC 的DAC如何做到从 0到Fs频段 信号输出

之前一直没太了解 RFSoC 的DAC如何输出在 Fs/2 到 Fs 频率范围内的信号,例如 ZCU216中的 ZU49DR,其RF-DAC最大采样率是 9.85GSPS,如果想输出的信号中心频率在5.8G,它是如何有效输出在第二奈奎斯特区域范围的信号的。

weixin_44630490的博客 1552

2024届数字IC秋招-华为机试-数字芯片-笔试真题和答案(三)(含2022年和2023年)

此部分包含华为机试真题,方向是数字芯片,内容详细包括设计、验证、后端等,大部分题目给出参考答案。华为机试都是从题库里抽题目,所以这些题目还是很有参考性的,甚至是完全一样,可以搜到的。(题目内容较多,将分开编写几个文章)A.错误B.正确参考答案:BA.getB.try_getC.peekD.put参考答案:B。

qq_42135020的博客 1917

WPF PasswordBox水印提示最简单实现:附加属性+样式模板

在界面设计中,水印提示是一种常用的交互模式,用于在输入框空白时显示引导性文字。然而在WPF中,PasswordBox控件因自身结构限制,默认并不支持水印显示,其Password属性也非依赖属性,导致常规绑定方案失效。在这种情况下,通过附加属性配合ControlTemplate重写,可以优雅地在PasswordBox上实现水印效果,且不侵入业务逻辑。附加属性负责传达提示文案,样式模板集成水印控件,配合PasswordChanged事件动态控制显隐,即可完成一个可复用的公共组件。该方案适用于登录界面等场景,也便

weixin_34037173的博客 290

YOLO26改进策略【YOLO和Mamba】| CVPR 2025:EfficientViM 压缩隐藏状态空间进行通道混合、单头设计减少内存操作,提升目标检测效率与精度

本文记录的是利用模块优化的目标检测网络模型。EfficientViM Block(基于隐藏状态混合器的状态空间对偶性模块) 的设计旨在,提升特征提取效率,同时兼顾全局依赖捕捉与局部细节保留。本文将深入研究的原理,并将其应用到中,通过重构特征提取流程、减少内存绑定操作、融合多阶段特征,增强模型在资源受限环境下的检测性能与速度。EfficientViM: Efficient Vision Mamba with Hidden State Mixer based State Space DualityEfficie

Limiiiing的博客 399

02 WPF 常用控件

在另一个元素四周绘制边框和/或背景(嵌套其他元素) ​背景颜色 ​边框颜色 ​边框宽度,设置方法类似Margin ​圆角半径,一个时表示设置四个角,设置四个时分别为左上、右上、右下、左下,当圆角半径大于等于自身尺寸一半时为圆形 Button控件 BorderBrush:获取或设置一个用于描述控件的边框背景的画笔。设置为Transparent透明的可以去边框BorderThickness:获取或设置控件的边框宽度。设置为0透明的可以去边框Click:点击事件ClickMode:获取或设置 Click

lao_guolao_guo的博客 225

HotSpot G1 GC 的分区记账、SATB 并发标记与停顿目标调优解析

线上GC毛刺该调停顿目标、加大新生代还是换收集器?本文从HotSpot G1的设计出发,梳理分区与巨型对象、卡表与记忆集、写屏障与细化线程、停顿预测、SATB并发标记、自适应IHOP、混合回收规则及Full GC兜底,并注明JDK8至JDK27的版本差异。文中在JDK8与JDK17上实测:停顿目标从200ms降到20ms,伊甸区缩小四成、P99下降但仍超目标;巨型对象会反复触发又撤销并发标记;JDK17并行Full GC平均停顿约为JDK8的三成。最后给出日志解读、参数清单、调优流程与选型。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

【WRF后处理】基于wrf-python处理wrf运行结果wrfout_d01

基于wrf-python处理wrf运行结果wrfout_d01

WW、forever的博客 5209

WPF登录界面实战:数据绑定、命令与无边框窗口的完整实现

在桌面应用开发中,界面只是表象,数据流才是核心。WPF作为.NET平台强大的UI框架,通过数据绑定、命令和MVVM模式,将界面与逻辑解耦,让开发者能够高效构建稳定且可维护的登录界面。从无边框窗口的WindowChrome配置,到控件模板的覆写、输入校验与异步命令的运用,每一个环节都关乎用户体验与代码质量。本文从基础概念出发,结合工程实践,剖析登录页面的三层架构与六块核心积木,并针对DataContext继承、绑定失败、模板覆盖等高频问题给出排雷方案。无论你是初学WPF还是正在优化现有登录模块,都能从中获得可

weixin_34235457的博客 279

C#部署YOLO三种方案深度实测:OpenCV DNN vs ONNX Runtime vs TensorRT

在工业视觉项目落地阶段,C#生态下部署YOLO模型主要有三条技术路线。很多开发者仅凭经验选型,往往在部署后期踩中性能瓶颈、兼容故障、维护成本超标的坑。本文基于工控机常见硬件配置,针对YOLOv8系列模型做控制变量实测,从推理性能、部署难度、工业稳定性、综合成本等多个维度做横向对比,给出可直接落地的选型结论。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 466

WPF转WinForms实战:从布局、绑定到线程的完整迁移指南

桌面应用开发中,UI框架的选型与迁移是常见挑战。WPF与WinForms作为两种主流技术,分别基于声明式XAML与命令式控件模型,设计哲学差异显著。理解两者的核心原理,有助于在遗留系统维护、团队技能栈受限或性能敏感场景下高效完成代码转换。本文系统性梳理从WPF到WinForms的迁移路径,涵盖布局容器映射、控件对应关系、数据绑定机制替换、样式自绘方案以及线程调度差异等关键环节,并结合登录页实例演示完整改造过程。掌握这些要点,开发者可在保持业务逻辑不变的前提下,快速构建可维护的WinForms应用,规避绑定不

weixin_34199335的博客 674

GPU硬件架构与微架构深度解析09-GPU寄存器文件深度解析

本文探讨GPU架构中大规模寄存器堆的设计与高效分配算法。寄存器文件作为GPU关键组件,支持大规模线程并行和快速数据存取。文章分析了多体寄存器堆的设计考量,包括端口数量、冲突避免和功耗管理,并比较了线性扫描、图着色等寄存器分配算法的特点。还介绍了寄存器压缩、动态分区等高级优化技术,以及NVIDIA Ampere架构的实际案例。这些技术对提升GPU计算性能和能效至关重要。

2301_79143213的博客 120

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WPF登录窗口布局实战:高DPI适配与响应式设计

WPF登录窗口是检验UI布局能力的典型场景,涉及尺寸自适应、多分辨率兼容、视觉层次控制等核心问题。其本质是WPF布局系统在真实工程约束下的综合应用,需深入理解DockPanel与Viewbox协同机制、DPI感知原理及像素对齐规则。技术价值在于提升界面稳定性、可访问性与跨设备一致性,广泛应用于金融、医疗、政务等对UI可靠性要求严苛的桌面系统。本文聚焦生产级登录页的布局架构、控件细节打磨与高DPI兼容方案,涵盖Viewbox缩放陷阱、4px基准单位原则、PasswordBox安全粘贴等关键实践。

weixin_29587015的博客 157

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

c#软件开发学习笔记--WPF(控件、样式)

XAML(Extensible Application Markup Language)是一种声明性标记语言,类似 HTML/XML。.xaml文件本质上是 XML 文件,区分大小写。知识点关键点XAML标签即对象,属性即特性,内容区可嵌套启动方式StartupUri(简单)、Startup事件(灵活)、自定义Main(不推荐)布局Grid(行列)、StackPanel(堆叠)、DockPanel(停靠)、WrapPanel(自动换行)样式全局 > 局部 > 行内,支持 BasedOn 继承资源。

Z599817841的博客 297

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

WPF总结

方式一:传统无边框方式二:WindowChrome 无边框(推荐,现代写法)

qq_56230359的博客 254

WPF制作带圆角的文本框的两种方法

方法一   方法二 效果图

三五月儿的专栏 1万+

WPF参考做的TextBox圆角,并且水印文字操作

1.首先进行 转换器操作(获取当前Textbox Text是否为空或者空格)其中水印 就是附加属性 设定的text ,Tag则单位的显示数据。但是因为转换类是在其他方法内,所以此地需要引入操作。4 应用在界面的xaml下的操作:引入Key。使用附加属性操作水印建议推荐先拜读这篇文章。引入的写法和xaml标准方法: 引入地址。使用圆角以及水印加入单位推荐拜读这个。

weixin_40029679的博客 736

WPF Button 设置圆角 CornerRadius属性的使用

可以看到为border设置了CornerRadius属性,value为3,这个可以根据需求自定义圆角的弯曲度,同时上面将Background通过绑定的方式输入value,那么在画button的时候可以将值传入。在WPF,button的默认形态时长方形的,但是我们为了美观,通常需要将button的四个角设计的温和一点,在WPF中就需要用到这样一个属性CornerRadius。首先我们要画一个button。然后给button添加样式。

u012803643的博客 3496
上一篇: GeoGebra 实例 时钟
下一篇: C++ 网络编程 自学 01
Gigi Princess
博客等级 码龄5年 63粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值