.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
 
Sign In
Register
 
Win Surprise Gifts!!!
Congratulations!!!


Top 5 Contributors of the Month
G N
Akhil Raj
Dhananjay Kumar
laptop charles
Majith

Home >> Articles >> WPF >> Post New Resource Bookmark and Share

 Subscribe to Articles

WPF Bitmap Effects Tutorial - Part III

Posted By :Diptimaya Patra      Posted Date :30/05/2010   Points :25   Category: WPF    URL: http://dpatra.blogspot.com

WPF Bitmap Effects Tutorial - Part III. In this tutorial we will see how to group effects, and we will see how we can achieve the effects with triggers.
 


Group Effects

Suppose we need multiple effects for controls. We can achieve this by grouping the effects.

You may interested the Part I and Part II of the same tutorial series

If you see in XAML behind, we have this:

Clipboard01.gif

Let's see how we can group multiple effects.

Let's say we need DropShadow as well as OuterGlow Bitmap effect for a TextBlock then how can we achieve this!

Clipboard02.gif

As you see in above XAML display, we have both effects with different colors.

Clipboard03.gif

Like this you can do effect combinations based on your imagination!

Effect When Event is Triggered

An effect can be triggered by an event, such as MouseOver, Focus, etc.

Let's have two triggers for two different controls, first one will be for image when we MouseOver the Image would have OuterGlow and the second one will be for a Focused and it would have OuterGlow effect.

Let's do it!

Clipboard04.gif

Code view of the above image

<TabControl.Resources>
  <Style x:Key="ImageStyle" TargetType="{x:Type Image}">
    <Style.Triggers>
      <Trigger Property="IsMouseOver" Value="True">
        <Setter Property="BitmapEffect">
          <Setter.Value>
            <OuterGlowBitmapEffect GlowColor="Gold"
                                   GlowSize="8"/>
          </Setter.Value>
        </Setter>
      </Trigger>
    </Style.Triggers>
  </Style>

  <Style x:Key="TextBoxStyle" TargetType="{x:Type TextBox}">
    <Style.Triggers>
      <Trigger Property="IsFocused" Value="True">
        <Setter Property="BitmapEffect">
          <Setter.Value>
            <OuterGlowBitmapEffect GlowColor="Red"
                                   GlowSize="8"/>
          </Setter.Value>
        </Setter>
      </Trigger>
    </Style.Triggers>
  </Style>
</TabControl.Resources>

And to apply the styles use as following:

Clipboard05.gif

Code view of the above image

<Image Source="Assets/Smiley_Love.png" Cursor="Hand"
       Style="{DynamicResource ImageStyle}"
       Margin="8,8,0,0" VerticalAlignment="Top" Width="128"
       Height="128" HorizontalAlignment="Left"
       d:LayoutOverrides="Width">
</Image>
<TextBox Height="23" Style="{DynamicResource TextBoxStyle}"
         Margin="6,0,147,126" VerticalAlignment="Bottom">
</TextBox>

Now we can have the following effects when MouseOver or Focus for respective controls.

Clipboard06.gif

You can also download the sample project used in the above article.

Hope this article helps.



Featured Articles


Best Practices No 5: - Detecting .NET application memory leaks
Memory leaks in .NET application have always being programmer's nightmare. Memory leaks are biggest problems when it comes to production servers. Productions servers normally need to run with least down time. Memory leaks grow slowly and after sometime they bring down the server by consuming huge chunks of memory. Maximum time people reboot the system, make it work temporarily and send a sorry note to the customer for the downtime. ... Read More
.NET Best Practice No: 1:- Detecting High Memory consuming functions in .NET code
One of the important factors for performance degradation in .NET code is memory consumption. Many developers just concentrate on execution time to determine performance bottle necks in a .NET application. Only measuring execution time does not clearly give idea of where the performance issue resides. Ok, said and done one of the biggest task is to understand which function, assembly or class has consumed how much memory. In this tutorial we will see how we can find which functions consume how much memory. This article discusses the best practices involved using CLR profiler for studying memory allocation.... Read More
How to improve your LINQ query performance by 5 X times ?
LINQ has been criticized by many early adopters for its performance issues. Well if you are just going to drag and drop using DBML code generator I am sure you will land up in to mess. Try doing this make a simple LINQ to SQL project using DBML and see your SQL profiler, I am sure you will never like to touch DBML code generator again. ... Read More
Responses

No response found. Be the first to respond this post

Post Comment
You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend