当前位置:编程学习 > C#/ASP.NET >>

怎么实现一个弹出的半透明窗体?

点击设置之后弹出一个窗体,新的窗体带有一个渐变半透明的阴影效果,我用的方法是修改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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,