Laden...

OuterGlowBitmapEffect nutzen

Erstellt von Taladan vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.568 Views
Taladan Themenstarter:in
582 Beiträge seit 2008
vor 13 Jahren
OuterGlowBitmapEffect nutzen

Hallo,

ich wollte gerne einen OuterGlowBitmapEffect auf einen Button anwenden. Allerdings waren alle Versuche ohne erfolg. Ich habe bereits Stundenlang im Netz gesucht bis ich auf die Idee kam, den per Code zu setzen. Hier mit einen Blureffekt getestet.


        private void btnDeleteStartWindow_MouseEnter(object sender, MouseEventArgs e)
        {
            // Get a reference to the Button.
            Button myButton = (Button)sender;

            // Initialize a new BlurBitmapEffect that will be applied
            // to the Button.
            System.Windows.Media.Effects.BlurBitmapEffect myBlurEffect = new System.Windows.Media.Effects.BlurBitmapEffect();

            // Set the Radius property of the blur. This determines how 
            // blurry the effect will be. The larger the radius, the more
            // blurring. 
            myBlurEffect.Radius = 10;

            // Set the KernelType property of the blur. A KernalType of "Box"
            // creates less blur than the Gaussian kernal type.
            myBlurEffect.KernelType = KernelType.Box;

            // Apply the bitmap effect to the Button.
            myButton.BitmapEffect = myBlurEffect;


        }


Nun erzählt ir der Kompiler, das BitmapEffekt veraltet ist und statt dessen Effect erwendet werden sollte. Scheibar hat sich die Verwendung durch .Net 4.0 verändert.
Nur wird effect offenbar ganz anders verwendet und das Beispiel auf msdn ist alles andere als verständlich.

Kann mir jemand weiter Helfen, wie ich einen simplen OuterGlowBitmapEffect verwenden kann?

Gruß dat Tala

U
1.578 Beiträge seit 2009
vor 13 Jahren

Geht im Xaml ganz einfach:

<Button Content="Demo">
    <Button.Effect>
        <BlurEffect />
    </Button.Effect>
</Button>

Scheibar hat sich die Verwendung durch .Net 4.0 verändert.

War bereits in 3.5 so.

Taladan Themenstarter:in
582 Beiträge seit 2008
vor 13 Jahren

Sorry meinte nicht den Blureffekt sondern den OuterGlowBitmapEffect.

Gruß dat Tala

Taladan Themenstarter:in
582 Beiträge seit 2008
vor 13 Jahren

Nach langer Suche bin ich fündig geworden. Man kann den Effekt nur simulieren

<DropShadowEffect ShadowDepth="0" Color="Gold" BlurRadius="20"  RenderingBias="Quality" />

Gruß dat Tala

L
862 Beiträge seit 2006
vor 13 Jahren

Das Property BitmapEffect ist seit .NET 4.0 ein Deadlink. In diesem Framework kannst du die BitmapEffekte leider nicht mehr nutzen.

Ich kann dich allerdings etwas trösten. Der Grund warum BitmapEffekt nicht mehr verwendet werden kann ist die Tatsache dass sie per Software gerendert wurden und SEHR langsam waren. Als ersatz kannst du das Effect-Property benutzen. Diese werden per PixelShader realisiert, welche von der Grafikkarte gerendert werden und sind desshalb sehr schnell. Leider gibt es (meines Wissens nach) noch keinen OuterGlowEffect der per PixelShader realisiert wurde (zumindest im .NET 4.0). Aber wenn der Schatten-Effekt auch funktioniert sollte das Problem ja behoben sein.