.NET9里WinForm更新了什么

文摘   2024-11-20 07:30   日本  

下面是几个在.NET9中WinForm的新功能!

  • 主题

Windows Forms 已初步支持暗模式,目标是在 .NET 10 中实现完整支持。应用程序的颜色模式可以设置为以下几种值:

  • SystemColorMode.Classic—(默认)浅色模式,与之前版本的 Windows Forms 相同。
  • SystemColorMode.System—遵循 Windows 设置的浅色或深色模式。
  • SystemColorMode.Dark—使用深色模式。

<NoWarn>$(NoWarn);WFO5001</NoWarn>


Application.SetColorMode(SystemColorMode.Dark);


按钮的效果不佳

  • ToolStrip属性AllowClickThrough

ToolStrip控件的AllowClickThrough属性,默认值是False。现在有一个ToolStripButton,并且有单击事件,如果当前窗体不是焦点,且可视,这时点击这个ToolStripButton时,窗体首先被选中,成为焦点,然后再次点击ToolStripButton时,它的事才会起作用。如果把AllowClickThrough设置成True,当前窗体不是焦点,且可视,当点击ToolStripButton时,它的事会直接执行,并且窗体会成为焦点窗体。

  • System.Drawing.Imaging.Effects 

System.Drawing 库现在支持 GDI+ 位图效果,如模糊和色调效果。虽然这些效果早已是 GDI+ 的一部分,但直到现在才通过 System.Drawing 对外开放。

可以通过调用 Bitmap.ApplyEffect(Effect, Rectangle) 方法将效果应用于位图。提供所需的效果以及一个可选的 Rectangle 参数以指定应用效果的区域。使用 Rectangle.Empty 来处理整个图像。

System.Drawing.Imaging.Effects 命名空间包含以下可应用的效果:

名称含义
BlackSaturationCurveEffect调整黑色饱和度,影响图像中深黑色的浓度与纯度。
BlurEffect模糊效果,降低图像清晰度,常用于平滑细节或减少噪点。
BrightnessContrastEffect调整图像的亮度与对比度,使图像更亮或更暗、更强烈或柔和。
ColorBalanceEffect调整图像的色彩平衡,改变图像中红、绿、蓝色的比例。
ColorCurveEffect通过曲线调整不同颜色通道,增加图像的颜色精细度和层次感。
ColorLookupTableEffect应用色彩查找表(LUT)来转换图像颜色,实现特定的色彩风格或效果。
ColorMatrixEffect使用颜色矩阵改变图像色彩,可用于创建特定的色调和滤色效果。
ContrastCurveEffect调整图像的对比度曲线,控制图像不同区域的亮暗程度。
CurveChannel

单独调整颜色通道(红、绿、蓝)的曲线,用于细致控制各个颜色的表现。

DensityCurveEffect控制图像的密度曲线,用于增减图像特定亮度区域的厚重感。
ExposureCurveEffect调整曝光度曲线,控制图像的亮度以增强或减少曝光效果。
GrayScaleEffect将图像转换为灰度模式,只保留亮度信息,去除所有色彩。
HighlightCurveEffect调整高光曲线,增强或减弱图像中的高亮区域。
InvertEffect反相效果,将图像的颜色转换为相反的颜色,生成负片效果。
LevelsEffect调整图像的色阶,通过改变输入和输出黑白点来控制图像亮暗。
MidtoneCurveEffect调整中间色调曲线,主要影响图像的中间亮度区域。
ShadowCurveEffect调整阴影曲线,增强或减弱图像中的阴影区域。
SharpenEffect锐化效果,增加图像边缘的清晰度,使细节更加突出。
TintEffect应用色调效果,增加某种颜色的覆盖,使图像带有特定色彩基调。
VividEffect增加图像的色彩饱和度和对比度,使图像显得更加鲜艳生动。
WhiteSaturationCurveEffect调整白色饱和度,影响图像中纯白区域的饱和感与明亮度。

下面是一个反相效果的代码:

var bmp = new Bitmap(Image.FromFile("Microsoft_logo.png"));var invertEffect = new System.Drawing.Imaging.Effects.InvertEffect();bmp.ApplyEffect(invertEffect);bmp.Save(DateTime.Now.ToString("ddHHmmssfff") + ".png");
效果如下:

     

  • FolderBrowserDialog多选

FolderBrowserDialog 现在支持选择多个文件夹,这些文件夹存储在 SelectedPaths 数组中。要启用多选功能,请将 Multiselect 设置为 true。

桂迹
分享原创,记录痕迹!
 最新文章