怎么实现一个弹出的半透明窗体?
点击设置之后弹出一个窗体,新的窗体带有一个渐变半透明的阴影效果,我用的方法是修改forecolor和TransparencyKey相等,但是这样只有一个不规则窗口的效果,没有做到半透明。请大大们提点提点 --------------------编程问答-------------------- 设置opacity属性。 --------------------编程问答-------------------- 窗体 有Opacity属性,你设置看看 --------------------编程问答-------------------- 窗体的不透明度级别。默认值为 1.00。Opacity 属性使您可以指定窗体及其控件的透明度级别。将此属性设置为小于 100% (1.00) 的值时,会使整个窗体(包括边框)更透明。将此属性设置为值 0% (0.00) 时,会使窗体完全不可见。可以使用此属性提供不同级别的透明度,或者提供如窗体逐渐进入或退出视野这样的效果。例如,可以通过将 Opacity 属性设置为值 0% (0.00),并逐渐增加该值直到它达到 100% (1.00),使一个窗体逐渐进入视野。
Opacity 与 TransparencyKey 提供的透明度不同,后者只能使窗体及其控件完全透明(当窗体及其控件的颜色与 TransparencyKey 属性中指定的值所表示的颜色相同时)。
// Create a new form.
Form form2 = new Form();
// Set the text displayed in the caption.
form2.Text = "My Form";
// Set the opacity to 75%.
form2.Opacity = .75;
// Size the form to be 300 pixels in height and width.
form2.Size = new Size(300,300);
// Display the form in the center of the screen.
form2.StartPosition = FormStartPosition.CenterScreen;
// Display the form as a modal dialog box.
form2.ShowDialog();
--------------------编程问答-------------------- 这两个示例都实现了,窗体四边渐变阴影和窗体半透明,你可以参考下,效果很棒哦。
(360安全卫士DEMO)点击下载
(高仿QQ2013通讯DEMO-10.30更新)点击下载 --------------------编程问答-------------------- ls的我看的有点糊涂..
我想要的是部分半透明,有些部分是完全不透明的,不知道有没有什么好的方法? --------------------编程问答-------------------- 试试这个UpdateLayeredWindow+png,不知道能不能满足你的需求 --------------------编程问答-------------------- 半透明渐变用这个
public const Int32 AW_HOR_POSITIVE = 0x00000001; // 从左到右打开窗口
public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 从右到左打开窗口
public const Int32 AW_VER_POSITIVE = 0x00000004; // 从上到下打开窗口
public const Int32 AW_VER_NEGATIVE = 0x00000008; // 从下到上打开窗口
public const Int32 AW_CENTER = 0x00000010;
public const Int32 AW_HIDE = 0x00010000; // 在窗体卸载时若想使用本函数就得加上此常量
public const Int32 AW_ACTIVATE = 0x00020000; //在窗体通过本函数打开后,默认情况下会失去焦点,除非加上本常量
public const Int32 AW_SLIDE = 0x00040000;
public const Int32 AW_BLEND = 0x00080000; // 淡入淡出效果
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool AnimateWindow(
IntPtr hwnd,
int dwTime,
int dwFlags
);
补充:.NET技术 , C#