Med Opacity kan man göra ett fönster genomskinligt inklusive alla kontroller. och det är inte bara att sätta Control.Opacity till det värdet man vill ha eller renderas allt enligt Form.Opacity?? Ehhh, givetvis har jag väl letat efter en sådan egenskap...........jag är ingen nybörjare inom programmering precis...inget illa menat att racka ner på ditt inlägg dock... opacity stöds bara av toplevel fönster i win2000 och senare. Jo tack! Det är det jag också har kommit fram till precis som jag har skrivit i mitt första inlägg. Det jag undrar över är om någon vet om det är möjligt att göra ett undantag på en enda kontroll. En idé (ful som stryk) är att du ser till att du skapar ett kantlöst fönster som du sedan stoppar din kontroll som inte ska vara genomskinlig i. Det ser du sedan till att hela tiden synka positionen på. Det är det enda jag kan komma på... :/ Yes Onkelborg, den är ful men det är en idé. det _går_ att sätta opacity per pixel på ett formulär om du interoppar mot win32 layeredwindows apierna ledtråd till dig jenny: Ett tufft exempel som jag bara var tvungen att göra: jag fick intrycket att det handlade om att göra saker semitransparenta , inte klippa bort delar av formuläret , eller? Alldeles riktigt, det jag vill åstadkomma är semitransperanta fönster inklusive kontroller på fönstret utomen enda kontroll. Ej klippa bort delar av fönstret. kollade just codeproject exemplet http://www.codeproject.com/cs/media/perpxalpha_sharp.asp?df=100&forumid=3270&exp=0&select=844530&tid=266619#xx844530xx Nä, det var jag som glömde bort ursprungsfrågan :(Form.Opacity
Kan man på nåt vis göra ett undantag för en enda kontroll? Jag har ett fönster som delvis ska vara genomskinligt förutom en enda knapp i ett visst läge. Kan inte hitta något sätt att överskrida detta. Är det möjligt? Någon som vet? Sv: Form.Opacity
Sv: Form.Opacity
Finns ingen Opacity på control i alla fall inte i C#.Sv: Form.Opacity
dvs du kan sätta det på hela formuläret (med det resultat du sett)
//RogerSv: Form.Opacity
Tänkte att det kanske är någon som känner till något tricks att komma runt detta...Sv: Form.Opacity
Sv: Form.Opacity
Det är ingen jätteviktigt funktion så jag tar nog ett beslut om att funktionen inte ska göras om det inte finns någon bättre kodning. Håller dock tråden öppen ett tag till.Sv: Form.Opacity
det finns två olika sätt att använda layeredwindows ,
den första är den som finns inbyggd i .net , dvs opacity på ett helt top level fönster.
det andra är att med en bitmap som representerar en alphamask göra ett fönster transparant/semitransparant på pixelnivå (tror det finns exempel på det på codeproject.com
//RogerSv: Form.Opacity
http://groups.google.se/groups?hl=sv&lr=&ie=UTF-8&threadm=u17iS2RbEHA.1152%40TK2MSFTNGP09.phx.gbl&rnum=3&prev=/groups%3Fq%3Dirregular%2Bshaped%2Bforms%2Bgroup:microsoft.public.dotnet.*%26hl%3Dsv%26lr%3D%26ie%3DUTF-8%26selm%3Du17iS2RbEHA.1152%2540TK2MSFTNGP09.phx.gbl%26rnum%3D3
Irregular forms *S*Sv: Form.Opacity
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace IrregForm
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(96, 40);
this.label1.Name = "label1";
this.label1.TabIndex = 0;
this.label1.Text = "label1";
//
// button1
//
this.button1.Location = new System.Drawing.Point(360, 192);
this.button1.Name = "button1";
this.button1.TabIndex = 1;
this.button1.Text = "button1";
//
// button2
//
this.button2.Location = new System.Drawing.Point(128, 144);
this.button2.Name = "button2";
this.button2.TabIndex = 2;
this.button2.Text = "button2";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(456, 350);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
Invisible();
}
private void button2_Click(object sender, System.EventArgs e)
{
Visible();
}
private void Invisible()
{
button2.BackColor=this.BackColor;
this.BackColor=Color.Orange;
this.TransparencyKey=Color.Orange;
label1.Visible=false;
button1.Visible=false;
}
private void Visible()
{
this.BackColor=button2.BackColor;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
label1.Visible=true;
button1.Visible=true;
}
}
}
Sv: Form.Opacity
//RogerSv: Form.Opacity
Tyvärr har jag inte hunnit testa de senaste tipsen men ska testa så fort jag får tillfälle. Även om det är delar som klipps bort så kanske idén är användbar på annat sätt med lite redigering...
Jag såg att där var något tips om transperancy på pixel nivå men vet inte om det heller blir användbart då användarna kan ha olika xp themes där hela fönstret och kontroller är fadade så att säga. En mörk färg i ena änden av fönstret som fadar ut över hela fönstret och kontroller till att avslutas med en ljus färg i andra änden.
Återkommer när jag testat men kom gärna med fler idéer under tiden!Sv: Form.Opacity
och det är tydligen så att man kan inte ha kontroller på ett fönster med perpixel alphablend :P
så jag skulle nog säga att du får köra på onkelborgs hacklösning
skapa 2 fönster , ett med opacity och ett borderless med din knapp på.
synca sedan fönstrens förflyttning via lämpligt event/wndproc
//RogerSv: Form.Opacity
Nåja, tur att det är fredag