GDS WPF Shaders GDS WPF Shaders
GDS WPF Shaders is a small collection of special pixel shaders. The collection may expand in future releases.


Sample Code (download here:GDS.WPF.Shaders.TestProject.zip (Apx. 1MB))

<Window x:Class="TestProject.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TestProject"
        xmlns:GDS_WPF_Shaders_Transitions="clr-namespace:GDS.WPF.Shaders.Transitions;assembly=GDS.WPF.Shaders"
        mc:Ignorable="d"
        Title="GDS.WPF.Shaders V1.0 - Copyright 2017 © 2017 GD Software" Height="510" Width="854" ResizeMode="CanResizeWithGrip" WindowStartupLocation="CenterScreen">
  <Window.Resources>
    <Storyboard x:Key="Storyboard1" AutoReverse="True" RepeatBehavior="Forever">
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(GDS_WPF_Shaders_Transitions:RippleTransitionEffect.Progress)" Storyboard.TargetName="image">
        <EasingDoubleKeyFrame KeyTime="0" Value="0">
          <EasingDoubleKeyFrame.EasingFunction>
            <ExponentialEase EasingMode="EaseIn" Exponent="6"/>
          </EasingDoubleKeyFrame.EasingFunction>
        </EasingDoubleKeyFrame>
        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="100">
          <EasingDoubleKeyFrame.EasingFunction>
            <ExponentialEase EasingMode="EaseIn" Exponent="6"/>
          </EasingDoubleKeyFrame.EasingFunction>
        </EasingDoubleKeyFrame>
      </DoubleAnimationUsingKeyFrames>
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(GDS_WPF_Shaders_Transitions:RadialBlurTransitionEffect.Progress)" Storyboard.TargetName="grid">
        <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="100"/>
      </DoubleAnimationUsingKeyFrames>
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(GDS_WPF_Shaders_Transitions:PixelateTransitionEffect.Progress)" Storyboard.TargetName="grid1">
        <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="100"/>
        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/>
      </DoubleAnimationUsingKeyFrames>
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(GDS_WPF_Shaders_Transitions:RippleTransitionEffect.Progress)" Storyboard.TargetName="grid1">
        <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="50"/>
        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/>
      </DoubleAnimationUsingKeyFrames>
    </Storyboard>
  </Window.Resources>
  <Window.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
      <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
    </EventTrigger>
  </Window.Triggers>
  <Grid x:Name="grid">
    <Grid.Effect>
      <GDS_WPF_Shaders_Transitions:RadialBlurTransitionEffect Progress="0"/>
    </Grid.Effect>
    <Image x:Name="image" Source="Images/Lion1.jpg" RenderOptions.BitmapScalingMode="Linear" Margin="0,0,216,0">
      <Image.Effect>
        <GDS_WPF_Shaders_Transitions:RippleTransitionEffect Progress="0">
          <GDS_WPF_Shaders_Transitions:RippleTransitionEffect.Texture2>
            <ImageBrush ImageSource="Images/Lion2.jpg" Stretch="Uniform" TileMode="None" />
          </GDS_WPF_Shaders_Transitions:RippleTransitionEffect.Texture2>
        </GDS_WPF_Shaders_Transitions:RippleTransitionEffect>
      </Image.Effect>
    </Image>
    <Grid x:Name="grid1" HorizontalAlignment="Right" Width="197">
      <Grid.Effect>
        <GDS_WPF_Shaders_Transitions:RippleTransitionEffect Progress="1" />
      </Grid.Effect>
      <ListBox Height="276" Margin="10,0,10,10" VerticalAlignment="Bottom" SelectionMode="Extended">
        <ListBoxItem Content="Listbox item 1" />
        <ListBoxItem Content="Listbox item 2" />
        <ListBoxItem Content="Listbox item 3" />
        <ListBoxItem Content="Listbox item 4" />
        <ListBoxItem Content="Listbox item 5" />
        <ListBoxItem Content="Listbox item 6" />
        <ListBoxItem Content="Listbox item 7" />
        <ListBoxItem Content="Listbox item 8" />
        <ListBoxItem Content="Listbox item 9" />
        <ListBoxItem Content="Listbox item 10" />
      </ListBox>
      <CheckBox Content="CheckBox 3" HorizontalAlignment="Left" Margin="10,0,0,291" VerticalAlignment="Bottom"/>
      <CheckBox Content="CheckBox 2" HorizontalAlignment="Left" Margin="10,0,0,311" VerticalAlignment="Bottom"/>
      <CheckBox Content="CheckBox 1" HorizontalAlignment="Left" Margin="10,0,0,331" VerticalAlignment="Bottom"/>
      <Button Content="Button 1" HorizontalAlignment="Right" Margin="0,0,112,351" VerticalAlignment="Bottom" Width="75"/>
      <Button Content="Button 2" HorizontalAlignment="Right" Margin="0,0,32,351" VerticalAlignment="Bottom" Width="75"/>
      <ComboBox Margin="10,0,10,395" VerticalAlignment="Bottom" SelectedIndex="0">
        <ComboBoxItem Content="Item 1" />
        <ComboBoxItem Content="Item 2" />
        <ComboBoxItem Content="Item 3" />
        <ComboBoxItem Content="Item 4" />
        <ComboBoxItem Content="Item 5" />
        <ComboBoxItem Content="Item 6" />
        <ComboBoxItem Content="Item 7" />
        <ComboBoxItem Content="Item 8" />
        <ComboBoxItem Content="Item 9" />
        <ComboBoxItem Content="Item 10" />
      </ComboBox>
    </Grid>
  </Grid>
</Window>

  


How it looks:

GDS WPF Shaders