Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Transparentní barva

C# .NET .NET (C# a Visual Basic) Transparentní barva American English version English version

Aktivity (1)
Avatar
dirtyjobs
Člen
Avatar
dirtyjobs:24.4.2015 11:00

Ahoj, nevím si rady s tím, jak nastavit transparentní barvu pro materiál.

BitmapImage img = new BitmapImage();
ImageBrush imgBrush = new ImageBrush(img);
DiffuseMaterial imgMaterial = new DiffuseMaterial();
imgMaterial.Brush = imgBrush;
GeometryModel3D geometrymodel = new GeometryModel3D();
geometrymodel.Material = imgMaterial;
 
Odpovědět 24.4.2015 11:00
Avatar
Jurajs
Člen
Avatar
Odpovídá na dirtyjobs
Jurajs:24.4.2015 11:10

Ahoj, takhle nějak myslím:

public void InitializeMyForm()
 {
    this.BackColor = Color.Red;
    // Make the background color of form display transparently.
    this.TransparencyKey = BackColor;
 }

Nejsem si jistý

 
Nahoru Odpovědět  +1 24.4.2015 11:10
Avatar
dirtyjobs
Člen
Avatar
Odpovídá na Jurajs
dirtyjobs:24.4.2015 11:27

Pro formulář to určitě funguje, já zapomněl napsat, že to dělám ve WPF.

 
Nahoru Odpovědět 24.4.2015 11:27
Avatar
Jurajs
Člen
Avatar
Odpovídá na dirtyjobs
Jurajs:24.4.2015 11:42

Aha...ja myslel, že to dělaš čistě v C# :D

 
Nahoru Odpovědět 24.4.2015 11:42
Avatar
dirtyjobs
Člen
Avatar
Odpovídá na Jurajs
dirtyjobs:24.4.2015 12:08

XAML mě zatím moc neláká, takže to píšu čistě v kódu.

 
Nahoru Odpovědět 24.4.2015 12:08
Avatar
Odpovídá na dirtyjobs
Michael Škrášek:24.4.2015 14:03

Takhle je to ve WPF:

this.AllowsTransparency = true;
this.WindowStyle = WindowStyle.None;

this.Background = new SolidColorBrush(Color.FromArgb(200, 0, 0, 0));
// nebo this.Background = Brushes.Transparent;
Nahoru Odpovědět  +1 24.4.2015 14:03
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
Odpovídá na dirtyjobs
Michael Škrášek:24.4.2015 14:06

Ale pokud nechceš okno ale třeba Rectangle tak takhle:

Rectangle rec = new Rectangle();
rec.Fill = new SolidColorBrush(Color.FromArgb(200, 0, 0, 0)); //černé průhledné pozadí
//nebo rec.Fill = Brushes.Transparent;
Nahoru Odpovědět  +1 24.4.2015 14:06
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
dirtyjobs
Člen
Avatar
Odpovídá na Michael Škrášek
dirtyjobs:24.4.2015 14:38

Objekty 3DView mají asi vyšší prioritu, takže tam požadovaná barva není transparentní, navíc bych rád klasické okno. Zkusím GetPixel,SetPixel na levelu okna, jinak bude grafika hranatá. :)

 
Nahoru Odpovědět 24.4.2015 14:38
Avatar
Odpovídá na dirtyjobs
Michael Škrášek:24.4.2015 15:40

A toto by fungovat nemohlo:

DiffuseMaterial material = new DiffuseMaterial();
material.Brush = new SolidColorBrush(Color.FromArgb(200, 0, 0, 0));
GeometryModel3D model = new GeometryModel3D();
model.BackMaterial = material;
Nahoru Odpovědět 24.4.2015 15:40
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
dirtyjobs
Člen
Avatar
Odpovídá na Michael Škrášek
dirtyjobs:24.4.2015 17:18

Jo to funguje, ale dělá to něco jiného.

 
Nahoru Odpovědět 24.4.2015 17:18
Avatar
Odpovídá na dirtyjobs
Michael Škrášek:24.4.2015 17:20

A co bys přesně chtěl aby to dělalo - jak to vypadalo?

Nahoru Odpovědět 24.4.2015 17:20
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
dirtyjobs
Člen
Avatar
Odpovídá na Michael Škrášek
dirtyjobs:24.4.2015 17:32

Takhle to nějak vypadá.:)

Editováno 24.4.2015 17:33
 
Nahoru Odpovědět 24.4.2015 17:32
Avatar
Odpovídá na dirtyjobs
Michael Škrášek:24.4.2015 17:49

A chceš aby byla průhledná ta ruka (či co to je), tak teda chceš aby ruka měla průhlednou texturu:

http://stackoverflow.com/…bitmap-image

pokud jsem to špatně pochopil, tak mě oprav prosím :D

Nahoru Odpovědět 24.4.2015 17:49
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
dirtyjobs
Člen
Avatar
Odpovídá na Michael Škrášek
dirtyjobs:24.4.2015 18:06

No pokoušel jsem se nakreslit zbraň, konkrétně to má být brokovnice. Akorát se mi tam nějak moc nehodí ta bílá barva.

 
Nahoru Odpovědět 24.4.2015 18:06
Avatar
Odpovídá na dirtyjobs
Michael Škrášek:24.4.2015 18:11

Aha tak ji chceš nastavit na transparent :D, už jsem to pochopil.
Ukaž prosím ještě jak to vypadá, když to nastavíš na:

material.Brush = Brushes.Transparent;
Nahoru Odpovědět 24.4.2015 18:11
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
dirtyjobs
Člen
Avatar
Odpovídá na Michael Škrášek
dirtyjobs:24.4.2015 18:23

To nastaví Brush na hodnotu Transparent což je u mě #00FFFFFF

 
Nahoru Odpovědět 24.4.2015 18:23
Avatar
Odpovídá na dirtyjobs
Michael Škrášek:24.4.2015 18:45

Jestli to vypadá takhle tak nevim, ale podle tohoto návodu http://xoax.net/…-wpf-with-c/ by to mělo fungovat, tak se aspoň zkuz inspirovat :D

Nahoru Odpovědět 24.4.2015 18:45
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
Odpovídá na dirtyjobs
Michael Škrášek:24.4.2015 18:55

Jediný rozdíl je v tomto:

DiffuseMaterial material = new DiffuseMaterial(new SolidColorBrush(Color.FromArgb(0, 255, 255, 255)));
GeometryModel3D model = new GeometryModel3D();
model.BackMaterial = material;

a v tom to asi nebude :D, ale za pokus ni nedáš :D

Nahoru Odpovědět 24.4.2015 18:55
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
Eldan
Člen
Avatar
Eldan:25.4.2015 13:24

Dej obrázku té zbraně na pozadí nějakou barvu kterou jinak nepoužíváš a tu nastav jako transparencykey, to by mělo fungovat...

Nahoru Odpovědět 25.4.2015 13:24
Unobfuscated executable == free source code
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.