Getting To Know WPF
Written by Mike James   
Thursday, 26 September 2019
Article Index
Getting To Know WPF
Manual XAML
Layout
Graphics
Buttons On The Edge Of A Nervous..

 

Banner

 

Notice that the Storyboard is now slightly more complicated as we have added Acceleration and Deceleration ratios which specify how the change speeds up and slows down and we have made it repeat forever and loop back to its original state.

Once you have the basic idea of animation you can discover most of what you need to know by experimentation. For example, to make the button move diagonally when the user clicks on it, add the following between the EventTrigger.Actions tag:

<EventTrigger RoutedEvent="Button.Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="Button1"
Storyboard.TargetProperty="(Canvas.Left)"
From="0.0" To="125.0"
Duration="0:0:1"
AccelerationRatio="0.5"
DecelerationRatio="0.5"
RepeatBehavior="1x"
AutoReverse="True" />
<DoubleAnimation
Storyboard.TargetName="Button1"
Storyboard.TargetProperty="(Canvas.Top)"
From="0.0" To="125.0"
Duration="0:0:1"
AccelerationRatio="0.5"
DecelerationRatio="0.5"
RepeatBehavior="1x"
AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>

This moves the top and left properties and repeats the entire action just once. 

As you work with XAML it’s easy to forget that you are in fact working with a complete graphics system.

For example, all of the co-ordinates are in terms of absolute measurements rather than pixels and if the user interface is displayed on a higher resolution display device the quality increases, not the size of the text or buttons.

There are also transformations that you can apply to any rendered graphic. For example, if you add:

<Button.RenderTransform>
 <RotateTransform Angle="45" />
</Button.RenderTransform>

then the button will be drawn at 45 degrees – it still works as a standard button and even the animation functions. Animating a transformation is also possible.

 

button5

Buttons just aren’t supposed to behave like this!

 

Now that you have seen how WPF works you should be able to explore most of its facilities with the help of the documentation. It’s a powerful and unified approach to Windows graphics and you can’t afford to ignore it.

The things to keep in mind is that WPF is built on DirectX and makes use it to render all its graphics. All of the WPF controls are full graphical objects and they are only special in that they use used to respond to user input. WPF includes more sophisicated features such as animation, 3D, data binding and more. 

 

The Programmer's Guide To
WPF .NET Core

wpfcover

Contents

  1. Getting Started with WPF
  2. Getting To Know WPF 
  3. Creating Objects With XAML
  4. Inside Dependency Properties 
  5. Routed Events ***NEW
  6. Simple WPF data binding
  7. FlexGrid - A Lightweight Data Grid
  8. Using the WPF .NET 4.0 DataGrid
  9. ISupportInitialize and XAML
  10. WPF The Easy 3D Way
  11. BitmapSource: WPF Bitmaps
  12. Loading Bitmaps: DoEvents and the closure pattern
  13. Bitmap Effects
  14. Custom Bitmap Effects - Getting started
  15. Custom Bitmap Effects - HLSL
  16. Custom BitmapSource
  17. Bitmap Coding and Metatdata in WPF
  18. Custom Shape
  19. The bitmap transform classes
  20. Drawing Bitmaps – DrawingImage and DrawingVisual
  21. RenderTargetBitmap - Visual vector to bitmap
  22. WriteableBitmap
  23. BitmapImage and local files

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

C book

 

Comments




or email your comment to: comments@i-programmer.info

 

Banner


Custom Shape

Creating a custom Shape isn't difficult but it does have some hidden gotchas. We take a look at how best to do the job.



WriteableBitmap

WriteableBitmap gives you a bitmap object that you can modify dynamically - but exactly how to do this isn't always obvious.



Loading Bitmaps: DoEvents and the closure pattern

Sometimes loading a bitmap causes an asynchronous download and you have to wait for it to complete before using it - but how best to wait? The standard solution is to use an event but this breaks what [ ... ]



BitmapSource: WPF Bitmaps

Although bitmap graphics are not a main focus of WPF it does offer some useful facilities



WPF .NET Core - Inside Dependency Properties

One of the great mysteries of WPF is the strangely named "Dependency Properties". In this chapter we learn how dependency properties really work by creating a custom dependency property


Other Articles

 

C book

 

Comments




or email your comment to: comments@i-programmer.info

<ASIN:0672329859>

<ASIN:1430210842>

<ASIN:0735619573>

<ASIN:1590599497>

 

public partial class Window1 : Window
{


Last Updated ( Thursday, 26 September 2019 )