c# - 在 C# Windows 窗体中更改按钮字体 - “中”字体样式不可用
问题描述
我正在使用 C# 开发一个 Windows 窗体项目,我所做的其中一件事是创建一个自定义关闭按钮。我发现 Marlett 字体可用于为关闭按钮生成“X”,但我想使用“Medium”Marlett 样式,因为“Bold”太粗了。当我尝试在属性中选择“中”时,它始终默认为粗体。我的按钮如下所示:
在属性中,字体定义如下:
如果我尝试更改属性,我可以选择“中”,但它始终默认为“粗体”:
在设计器代码(我不会更改)中,它看起来像这样:
我尝试通过执行以下操作在运行时更改字体:
private void FrmMain_Load(object sender, EventArgs e)
{
_BtnClose.Font = new System.Drawing.Font("Marlett", 12F, System.Drawing.FontStyle.Medium, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
}
但是,在System.Drawing.FontStyle
.
我将如何强制我的程序使用“中”字体样式?
解决方案
好的,根据JQSOFT和Herohtar的上述评论,我尝试在按钮上绘制控件。我创建了一个继承自 Button 的名为 CloseButton 的类,并修改了 onPaint 方法如下:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
GraphicsPath gPath;
Pen gPen;
gPen = new Pen(System.Drawing.SystemColors.ControlText);
gPath = new GraphicsPath();
gPath.AddLine(20, 10, 30, 20);
gPath.CloseFigure();
gPath.AddLine(20, 20, 30, 10);
gPath.CloseFigure();
e.Graphics.DrawPath(gPen, gPath);
}
该按钮如下所示:
我现在需要做的就是弄清楚当我将鼠标移到控件上时如何重绘图形(并且颜色会发生变化),但我会做到的!
推荐阅读
- .htaccess - htaccess 重定向 GET 请求
- r - 按不同变量填充和分组条形图
- mysql - 从 MySQL 的列中查找数组中的元素
- highcharts - Highcharts堆积列如何在每个类别上使用不同的标签
- assembly - monitor/mwait 指令的使用
- jenkins - 使用 Maven 创建本地远程存储库
- java - 如何将此代码转换为准备好的语句或 jdbc 中的语句?
- java - JavaFX:StackPane 顺序转换
- java - Java:获取主应用程序的资源路径而不是 jar 的
- javascript - React Native 的 RTL 幻灯片