请问winform里面字体怎么加“特效”?

Tiny~ 2019-05-18 04:16:59
如题,之前也提过这个问题但是没解决。
我做的一个winform,根据客户端判断,然后显示客户名称,现在为了“逼格”高一些,想把这个突出现实的客户名称,加上字体特效,这个用winform是不是基本无法实现除非用wpf?


如图,除了用ps改图的方式,纯粹用c#代码,能把这个字弄的稍微“逼格”高一些些吗?


...全文
236 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiny~ 2019-05-19
  • 打赏
  • 举报
回复
引用 16 楼 desperaso 的回复:
里面的 PixelTextShadow.cs,RenderTextFastBmp.cs,RenderTextGdi.cs 对照UiDrawTextMethod.cs可以单独拆出来用
赞,是我要的!感谢帮助!
desperaso 2019-05-18
  • 打赏
  • 举报
回复
里面的
PixelTextShadow.cs,RenderTextFastBmp.cs,RenderTextGdi.cs
对照UiDrawTextMethod.cs可以单独拆出来用
Tiny~ 2019-05-18
  • 打赏
  • 举报
回复
这样可以,感谢楼上大兄弟。手机版csdn好像不能正常回复得打开手机浏览器用网页版。。。明天结贴
desperaso 2019-05-18
  • 打赏
  • 举报
回复
desperaso 2019-05-18
  • 打赏
  • 举报
回复

unsafe public void SetPixel(Int32 x, Int32 y, Color c)
{
if (_bitmapData.PixelFormat == PixelFormat.Format32bppArgb)
{
Byte* b = (Byte*)_bitmapData.Scan0 + (y * _bitmapData.Stride) + (x * 4);
*b = c.B;
*(b + 1) = c.G;
*(b + 2) = c.R;
*(b + 3) = c.A;
}
if (_bitmapData.PixelFormat == PixelFormat.Format24bppRgb)
{
Byte* b = (Byte*)_bitmapData.Scan0 + (y * _bitmapData.Stride) + (x * 3);
*b = c.B;
*(b + 1) = c.G;
*(b + 2) = c.R;
}
}
...............
...................
public void Blur(Int32 horz, Int32 vert)
{
Single weightsum;
Single[] weights;

FastBitmap t = (FastBitmap)_bitmap.Clone();

_bitmap.Lock();
t.Lock();

weights = new Single[horz * 2 + 1];
for (Int32 i = 0; i < horz * 2 + 1; i++)
{
Single y = Gauss(-horz + i, 0, horz);
weights[i] = y;
}

for (Int32 row = 0; row < _bitmap.Height; row++)
{
for (Int32 col = 0; col < _bitmap.Width; col++)
{
Double r = 0;
Double g = 0;
Double b = 0;
weightsum = 0;
for (Int32 i = 0; i < horz * 2 + 1; i++)
{
Int32 x = col - horz + i;
if (x < 0)
{
i += -x;
x = 0;
}
if (x > _bitmap.Width - 1)
break;
Color c = _bitmap.GetPixel(x, row);
r += c.R * weights[i];
g += c.G * weights[i];
b += c.B * weights[i];
weightsum += weights[i];
}
r /= weightsum;
g /= weightsum;
b /= weightsum;
Byte br = (Byte)Math.Round(r);
Byte bg = (Byte)Math.Round(g);
Byte bb = (Byte)Math.Round(b);
if (br > 255) br = 255;
if (bg > 255) bg = 255;
if (bb > 255) bb = 255;
t.SetPixel(col, row, Color.FromArgb(br, bg, bb));
}
}

weights = new Single[vert * 2 + 1];
for (Int32 i = 0; i < vert * 2 + 1; i++)
{
Single y = Gauss(-vert + i, 0, vert);
weights[i] = y;
}

for (Int32 col = 0; col < _bitmap.Width; col++)
{
for (Int32 row = 0; row < _bitmap.Height; row++)
{
Double r = 0;
Double g = 0;
Double b = 0;
weightsum = 0;
for (Int32 i = 0; i < vert * 2 + 1; i++)
{
Int32 y = row - vert + i;
if (y < 0)
{
i += -y;
y = 0;
}
if (y > _bitmap.Height - 1)
break;
Color c = t.GetPixel(col, y);
r += c.R * weights[i];
g += c.G * weights[i];
b += c.B * weights[i];
weightsum += weights[i];
}
r /= weightsum;
g /= weightsum;
b /= weightsum;
Byte br = (Byte)Math.Round(r);
Byte bg = (Byte)Math.Round(g);
Byte bb = (Byte)Math.Round(b);
if (br > 255) br = 255;
if (bg > 255) bg = 255;
if (bb > 255) bb = 255;
_bitmap.SetPixel(col, row, Color.FromArgb(br, bg, bb));
}
}
t.Dispose();
_bitmap.Unlock();
}
..............................
............................
desperaso 2019-05-18
  • 打赏
  • 举报
回复
https://www.cnblogs.com/qiaoke/p/8507183.html
这样的可以不
m0_37646670 2019-05-18
  • 打赏
  • 举报
回复
baidu :c# 自定义字体
Tiny~ 2019-05-18
  • 打赏
  • 举报
回复
引用 8 楼 智者知已应修善业 的回复:
不是说了?c#为何不行?意思就是可以,不知道你怎么想的了!算了,留给别人了。
有点纳闷,大神你今天是周末加班吗?还是失恋了…… 如果我会,我还提问干啥,这不是最明显的吗 你就回答一句可以,那和没回答有啥区别,我就是问是否可以,可以的话如何实现……
Tiny~ 2019-05-18
  • 打赏
  • 举报
回复
引用 8 楼 智者知已应修善业 的回复:
不是说了?c#为何不行?意思就是可以,不知道你怎么想的了!算了,留给别人了。
我提的问题就是,是否可以,如果可以,大概如何实现?你一句话就怼死人,“还问什么”?还不让别人提问啊
  • 打赏
  • 举报
回复
不是说了?c#为何不行?意思就是可以,不知道你怎么想的了!算了,留给别人了。
Tiny~ 2019-05-18
  • 打赏
  • 举报
回复
引用 5 楼 智者知已应修善业 的回复:
那就奇怪了,没说不行就是行了,还问什么?
不会,所以提问,有没有C#代码可以实现……C#代码能否实现…… 难道我提的问题是火星文
Tiny~ 2019-05-18
  • 打赏
  • 举报
回复
引用 5 楼 智者知已应修善业 的回复:
那就奇怪了,没说不行就是行了,还问什么?
看不懂问题吗? 我是说如何实现这种效果,C#有没有代码如何实现……
  • 打赏
  • 举报
回复
那就奇怪了,没说不行就是行了,还问什么?
Tiny~ 2019-05-18
  • 打赏
  • 举报
回复
引用 3 楼 智者知已应修善业 的回复:
为何不行?都尝试用什么代码了?尝试的代码在哪?
我没说不行啊?我就是提问行不行……
  • 打赏
  • 举报
回复
为何不行?都尝试用什么代码了?尝试的代码在哪?
stherix 2019-05-18
  • 打赏
  • 举报
回复
可以换字体 然后加粗 加倾斜等手段
Tiny~ 2019-05-18
  • 打赏
  • 举报
回复
打错字,突出显示的客户名称…… 客户端自动判断客户的注册名称,然后显示出来,这个名称的字能用代码的形式改点“特效”出来吗?

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧