Tag: 透明度

C#重叠PictureBox的透明度问题

我在一个面板PictureBox重叠显示,因为每个PictureBox都用作一个图层。 第一次定义PictureBox并将其添加到面板时,它的背景颜色是透明的,并且它的图像是空的。 问题是,无法看到底层,透明图像显示面板的地面。 例外的是可以看到底部PictureBox的图像。 我已尝试使用其他控件,如label。 问题无法解决:( 谢谢。

C#透明GUI

大家好。 我想知道如何在C#中制作一个“透明”的GUI。 现在我不是在谈论transparencykey等。 我想创建一个使用vistas航空主题的窗口,但不是表单中的控件,我只是想让它显示更多的seethru aero外观。 而且我想从窗口中删除所有按钮,图标和文本。 我该怎么办? 编辑…我找到了一个完美的例子,我想要创建。 在vista上加载Windows移动中心。 我怎样才能创建类似的东西,但没有盒子。

在C#中透明面板中绘制一条移动线

在这方面似乎有一百万个问题,但我找不到一个可行的问题。 所以,我想这是问题1,000,001的时间。 我有一个带有PictureBox和Panel的自定义控件。 Panel是PictureBox的孩子,具有透明背景。 这允许我绘制在PictureBox加载的任何图像的顶部。 绘图部分有效,但擦除部分没有。 如果我使用Invalidate()我只会得到一堆闪烁,并且该行甚至都没有显示。 如果最终目标不明显,它应该像任何体面的绘图应用程序一样工作,在那里你点击一个点,拖动,然后用鼠标移动线直到你松开。 码: private void drawLine(Point pt) { // Erase the last line if (m_lastPoints != null) { m_graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy; m_graphics.DrawLine(m_transPen, m_lastPoints[0], m_lastPoints[1]); } // Set the last points m_lastPoints = new Point[] { m_mouseStartPoint, pt }; m_graphics.DrawLine(new Pen(m_color), m_mouseStartPoint, pt); } m_transPen定义为new Pen(Color.FromArgb(0, 0, 0, 0)); m_transPen […]

使用C#.NET 3.5 WinForms进行部分透明化?

我正在制作一个.NET 3.5应用程序,其表单绘制部分透明的黑色背景。 我正在重写OnPaintBackground来实现这个目标: protected override void OnPaintBackground( PaintEventArgs e ) { using ( Brush brush = new SolidBrush( Color.FromArgb( 155, Color.Black ) ) ) { e.Graphics.FillRectangle( brush, e.ClipRectangle ); } } 它可以工作,但偶尔表格会在不清除屏幕的情况下自行绘制,使透明度比应有的更深。 我曾尝试使用Graphics.Flush()和Graphics.Clear() ,但它无法帮助或完全删除透明度。 有什么建议? 编辑:在左侧启动应用程序后,以及在右侧重新绘制表单几次(以响应从一个控件到另一个控件的选项卡)后,它的外观如下: 透明度问题http://www.quicksnapper.com/files/5085/17725729384A10347269148_m.png 编辑2:我今天早上尝试了一些事情并注意到当透明部分后面的桌面发生变化时,实际上并没有重新绘制。 例如,如果我打开任务管理器并将其放在窗口后面,您就不会看到它自己刷新。 这与我在透明度水平上所看到的一样有道理。 是否有一个function可以让Windows重绘窗口后面的区域? 编辑3:我尝试更改窗体上的一些属性,但它们都导致窗体绘制非透明黑色: this.AllowTransparency = true; this.DoubleBuffered = true; this.Opacity = .99; 我将尝试为透明部分创建一个单独的窗口,如上所述,但仍然欢迎任何其他想法。

将位图保存为32bpp不会保持透明度

using (var bmp = new Bitmap(image.Width, image.Height, PixelFormat.Format32bppArgb)) using (var g = Graphics.FromImage(bmp)) { g.Clear(Color.Transparent); g.DrawImage(image, 0, 0); bmp.Save(“image.bmp”, ImageFormat.Bmp); } 问题应该是明确的:为什么保存到BMP 会将透明度变为黑色 ,而保存到PNG 会保留它 ? 只是为了澄清: 图像采用Format8bppIndexed格式,其调色板确实包含透明色(例如,它正确地绘制在窗体/图片框上) 编辑:我的错, Bitmap.Save()实际上以Format32bppRgb格式保存BMP,即使位图格式是Format32bppArgb 。

将两个png图像合并为透明度并保持透明度

可能重复: 在C#/ .NET中合并两个图像 我有两个png格式图像,并且都定义了透明度。 我需要将这些合并到一个新的png图像中,但不会丢失结果中的任何透明度。 将第一个图像视为主图像,第二个图像用于添加叠加,例如添加/编辑/删除指示符。 我正在尝试创建一个小实用程序,它将采用主图像和一组叠加,然后生成组合它们的结果输出图像集。 对于PHP的解决方案似乎有很多答案,但C#/没有任何答案

我如何使我的表格透明,但我画的不是?

我尝试将表单的不透明度设置为50%,然后在其上绘制一个字符串。 似乎我在其上绘制的字符串也具有50%的不透明度。 我如何绘制非透明字符串,但让表单背景显示50%? 如果可能的话,也愿意在WPF中这样做,但我需要明确的指示或示例项目,因为我以前从未这样做过。 为了澄清,我希望表单背景是一个黑色的80%不透明的底部,然后我想在它上面绘制文字等,让它看起来100%不透明。

将datagrid视图背景设置为透明

我试图将数据网格视图的背景颜色设置为从属性“透明”,但它表示“不是有效的属性”。 我该怎么做?

如何在保持控件可见的同时为ac#表单添加透明度?

更新:我花了几天时间搞乱了透明度的东西。 今晚我又开始搞砸了。 我使用Hans Passant的解决方案得到了一个新结果: 新结果http://img3.imageshack.us/img3/4265/icontransp.jpg http://img3.imageshack.us/img3/4265/icontransp.jpg Passant的解决方案确实解决了透明背景渐变的问题。 但是,我仍然遇到问题,我的图标中的透明颜色与表单的BackColor混合。 您可以在上图中看到图标各个部分周围的紫红色。 原始内容: 我现在已经在这几个小时了,我运气不好。 我已经搞砸了Control.Region,Form.TransparencyKey,Form.Opacity,以及其他一些带有一些时髦效果的随机事物。 最近我一直在尝试自定义我的桌面,并决定搞乱应用程序docker。 在看到Mac Dock和一些第三方Windows实现提供的内容之后,我决定构建自己的。 最终我想继续使用Win32 API。 目前我只想使用尽可能多的C#和.Net框架function。 我想在这个应用程序中做一些事情: 显示带有渐变背景的表单/菜单。 允许表单/菜单具有透明度,同时保持图标不透明。 显示包含透明背景的图标。 菜单和图标应该能够接收与鼠标相关的事件(hover,离开,点击,dragover,dragdrop和其他一些事件)。 这就是我拍摄的效果: 期望的效果http://img207.imageshack.us/img207/5716/desired.jpg http://img207.imageshack.us/img207/5716/desired.jpg 此图像显示了我想要实现的视觉效果。 这是我为一个名为Rainmeter的程序制作的皮肤。 该图像显示了皮肤后面的Notepad ++,其中一些皮肤文件在编辑器中打开。 菜单是透明的,但图标保持不透明。 我的方法: 使用表单作为菜单似乎是我合乎逻辑的首选。 我对事件有基本的了解。 我不太确定如何创建自己的点击事件,因此表单可以使事件处理更容易。 我考虑了一些图标选项。 我决定使用PictureBoxes作为图标,因为它们可以保存图像并接收事件。 一旦我完成了菜单中所有结构逻辑的代码,我就开始玩它来尝试获得我想要的视觉效果。 Form.Opacity影响了表单上所有内容的透明度。 由于我希望图标完全不透明,所以我独自留下了这个属性。 我尝试将BackColor设置为Color.Transparent,但这会产生错误。 我玩了几个组合… 组合效果http://img204.imageshack.us/img204/757/effectsi.jpg http://img204.imageshack.us/img204/757/effectsi.jpg 我使用Drawing2D.LinearGradientBrush将渐变绘制到位图中。 然后将此位图放置为Form.BackgroundImage或PictureBox.Image。 如果使用,PictureBox的大小将覆盖整个表单并发送到后面。 我注意到一些Form.BackgroundColor会与我的图标轮廓混合在一起。 图标沿边缘具有透明度,以获得更平滑的外观。 由于图标正在拾取Form的BackgroundColor,这使我认为PictureBoxes在图标加载到表单时创建新图像。 然后,当图像的半透明部分与表单后面的任何颜色合并时,它们将与Form的BackgroundColor合并。 白色桌面效果http://img838.imageshack.us/img838/8299/whitedesktop.jpg http://img838.imageshack.us/img838/8299/whitedesktop.jpg 在此图像中,即使Form的紫红色现在完全透明,您也可以看到图标中存在的紫红色。 我忘了指出在每种情况下使用相同的绿色到黄色渐变,Alpha值为150。 […]

C#Windows窗体透明背景图像

当我尝试透明背景时,它并不完全透明。 我为这个问题尝试了两个代码块。 首先,我尝试这样的代码: public Form1() { InitializeComponent(); SetStyle(ControlStyles.SupportsTransparentBackColor, true); this.BackColor = Color.Transparent; this.FormBorderStyle = FormBorderStyle.None; //this.WindowState = System.Windows.Forms.FormWindowState.Maximized; } 它看起来像这张照片; 然后我发现了一些不同的代码并尝试了这个; public Form1() { InitializeComponent(); this.TransparencyKey = Color.White; this.BackColor = Color.White; this.FormBorderStyle = FormBorderStyle.None; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; } 这看起来像这张照片; 您可以看到带有白色边框的徽标。 我想只显示.png徽标完全透明。 我该怎么办? 怎么办呢? 这是我的Logo图像.png;