<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>XAML Review</title>
	<atom:link href="http://www.shaxam.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shaxam.com</link>
	<description>www.shaxam.com</description>
	<lastBuildDate>Wed, 21 Sep 2011 09:13:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Microsoft Silverlight</title>
		<link>http://www.shaxam.com/microsoft-silverlight/</link>
		<comments>http://www.shaxam.com/microsoft-silverlight/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 09:09:31 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[appearance]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[application markup language]]></category>
		<category><![CDATA[application solutions]]></category>
		<category><![CDATA[attractive view]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[capability]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[course]]></category>
		<category><![CDATA[course windows]]></category>
		<category><![CDATA[cross browser]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[Draft]]></category>
		<category><![CDATA[element]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[free plug ins]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[high quality audio]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[html page]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[integration support]]></category>
		<category><![CDATA[interactive web]]></category>
		<category><![CDATA[interactivity]]></category>
		<category><![CDATA[internet application]]></category>
		<category><![CDATA[internet application solutions]]></category>
		<category><![CDATA[level]]></category>
		<category><![CDATA[Macs]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[microsoft silverlight]]></category>
		<category><![CDATA[mobile applications]]></category>
		<category><![CDATA[operating]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[page markup]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[platform version]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[silverlight microsoft]]></category>
		<category><![CDATA[Streaming]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[timing]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[web appearance]]></category>
		<category><![CDATA[XML-based]]></category>
		<category><![CDATA[zammel]]></category>

		<guid isPermaLink="false">http://www.shaxam.com/?p=46</guid>
		<description><![CDATA[Microsoft Silverlight is a platform to make an interactive web appearance, the example of the function are creating attractive view on both desktop and mobile applications. Silverlight is a free plug-ins supported by the NET framework. Compatible across multiple browsers, devices and operating systems to bring a new level of interactivity on the Web works [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft Silverlight is a platform to make an interactive web appearance, the example of the function are creating attractive view on both desktop and mobile applications.</p>
<p>Silverlight is a free plug-ins supported by the NET framework. Compatible across multiple browsers, devices and operating systems to bring a new level of interactivity on the Web works anywhere, in this version is more on improved integration support, multithreading HD quality video using IIS Smooth Streaming, the capability of high-quality audio with Firefox, IE, Google Chrome, Safari, and can be used on Macs and of course Windows.<br />
<span id="more-46"></span><br />
In particular, Silverlight is a plug-in that cross-platform and cross-browser in a browser that renders the user interface and graphics on a canvas that can be inserted in an HTML page.<br />
Markup that is used to define a Silverlight canvas is called XAML (eXtensible Application Markup Language, or to pronounce the &#8220;zammel&#8221;)</p>
<p>XAML is an XML-based language similar to HTML in some parts. Like HTML, XAML which determines which elements will be displayed, and determining the layout of the elements therein.<br />
But unlike HTML, XAML is more than just a simple element and layout, using XAML, you can also determine the timing, transformation, animation, and events.</p>
<p>Silverlight offers all the same benefits with other Rich Internet Application, but there are some features that distinguish it from others Application solutions, such as below:<br />
     * Offering support cross-platform/cross-browser.<br />
           1. cross-platform version of. NET Framework.<br />
           2. XAML is text based markup language.<br />
           3. Silverlight using familiar technology.<br />
     * It is easy to deploy Silverlight runtime for the users of this Rich Internet Application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaxam.com/microsoft-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Triggers in XAML</title>
		<link>http://www.shaxam.com/triggers-in-xaml/</link>
		<comments>http://www.shaxam.com/triggers-in-xaml/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 03:34:10 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[appearance]]></category>
		<category><![CDATA[attribute]]></category>
		<category><![CDATA[attributes]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[button element]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[condition]]></category>
		<category><![CDATA[conjunction]]></category>
		<category><![CDATA[current value]]></category>
		<category><![CDATA[cursor]]></category>
		<category><![CDATA[cursor moves]]></category>
		<category><![CDATA[element]]></category>
		<category><![CDATA[elements]]></category>
		<category><![CDATA[flexibility]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[foreground]]></category>
		<category><![CDATA[global resources]]></category>
		<category><![CDATA[instances]]></category>
		<category><![CDATA[local resources]]></category>
		<category><![CDATA[logic]]></category>
		<category><![CDATA[mechanism]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[property]]></category>
		<category><![CDATA[property button]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[Setter]]></category>
		<category><![CDATA[style]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[Trigger]]></category>
		<category><![CDATA[Triggers]]></category>
		<category><![CDATA[TRue]]></category>
		<category><![CDATA[value]]></category>
		<category><![CDATA[variety]]></category>
		<category><![CDATA[way]]></category>
		<category><![CDATA[width]]></category>

		<guid isPermaLink="false">http://www.shaxam.com/?p=31</guid>
		<description><![CDATA[Triggers allow you to change attributes of an element when a specific action occurs. For example, you can change the font color of text when the mouse hovers over it, or change the width of a button once it has been clicked. Triggers can act on single instances of an element, or affect an entire [...]]]></description>
			<content:encoded><![CDATA[<p>Triggers allow you to change attributes of an element when a specific action occurs. For example, you can change the font color of text when the mouse hovers over it, or change the width of a button once it has been clicked. Triggers can act on single instances of an element, or affect an entire class of elements.</p>
<p>Triggers are conditional. They are essentially a way to implement standard if&#8230;then logic without writing external code. In other words, a trigger evaluates an attribute and if the current value of that attribute matches the value specified by the trigger, then the style is applied. If the cursor moves over a Button, then change the background to green.<br />
<span id="more-31"></span><br />
The code adds a TRigger that will fire when the property Button.IsMouseOver is TRue. Two Setter elements define the attributes we wish to change when the condition of the trigger is met. In this case, it changes the foreground of the Button to green and the background to red.</p>
<p>Using a Trigger to modify the appearance of Button elements<br />
<Page<br />
    xmlns="http://schemas.microsoft.com/winfx/avalon/2005"<br />
    xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"><br />
    <Page.Resources><br />
        <Style<br />
            TargetType="{x:Type Button}"><br />
            <Style.Triggers><br />
                <Trigger<br />
                    Property="Button.IsMouseOver"<br />
                    Value="true"><br />
                    <Setter<br />
                        Property = "Foreground"<br />
                        Value="Green"/><br />
                    <Setter<br />
                        Property = "Background"<br />
                        Value="Red"/><br />
                </Trigger><br />
            </Style.Triggers><br />
        </Style><br />
    </Page.Resources><br />
    <StackPanel><br />
        <Button<br />
            Content="My Button" /><br />
    </StackPanel><br />
</Page></p>
<p>Above code will modify the appearance of all Button elements declared in the page. To target only a specific Button, you must reference the style from the Button element. To do this, you must add a key name to the trigger and declare it as the Style attribute of the Button. The resulting code is shown below:</p>
<p>Using a Trigger to modify the appearance of a single Button<br />
<Page<br />
    xmlns="http://schemas.microsoft.com/winfx/avalon/2005"<br />
    xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"><br />
    <Page.Resources><br />
        <Style<br />
            x:Key="ButtonTriggers"<br />
            TargetType="{x:Type Button}"><br />
            <Style.Triggers><br />
                <Trigger<br />
                    Property="Button.IsMouseOver"<br />
                    Value="true"><br />
                    <Setter<br />
                        Property = "Control.Foreground"<br />
                        Value="Green"/><br />
                    <Setter<br />
                        Property = "Control.Background"<br />
                        Value="Red"/><br />
                </Trigger><br />
            </Style.Triggers><br />
        </Style><br />
    </Page.Resources><br />
    <StackPanel><br />
        <Button<br />
            Style="{StaticResource ButtonTriggers}"<br />
            Content="My Button" /><br />
    </StackPanel><br />
</Page></p>
<p>Above code shows how to declare TRiggers local to an element by defining the TRiggers within the local element&#8217;s Resources attribute. As mentioned previously, local resources override global resources, so these resources will be applied to the element in which they are defined, but not to any others.</p>
<p>This flexibility allows you to define conditional styling in a variety of ways, either by targeting a specific class of elements or individual elements. When used in conjunction with templated styles, triggers provide a powerful mechanism for designing rich, interactive user interfaces.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaxam.com/triggers-in-xaml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XAML Events Element</title>
		<link>http://www.shaxam.com/xaml-events-element/</link>
		<comments>http://www.shaxam.com/xaml-events-element/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 03:30:41 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[attribute]]></category>
		<category><![CDATA[Background]]></category>
		<category><![CDATA[Brushes]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[ByVal]]></category>
		<category><![CDATA[c implementation]]></category>
		<category><![CDATA[class c]]></category>
		<category><![CDATA[codebehind]]></category>
		<category><![CDATA[Content]]></category>
		<category><![CDATA[declaration]]></category>
		<category><![CDATA[element elements]]></category>
		<category><![CDATA[End]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[event handlers]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[MouseEnterHandler]]></category>
		<category><![CDATA[MouseEnterMouseLeave]]></category>
		<category><![CDATA[MouseEventArgs]]></category>
		<category><![CDATA[MouseLeaveHandler]]></category>
		<category><![CDATA[MyButton]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[order]]></category>
		<category><![CDATA[Partial]]></category>
		<category><![CDATA[Public]]></category>
		<category><![CDATA[Red]]></category>
		<category><![CDATA[sender]]></category>
		<category><![CDATA[set]]></category>
		<category><![CDATA[Sub]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[syntax elements]]></category>
		<category><![CDATA[UIElement]]></category>
		<category><![CDATA[VisualBasic]]></category>
		<category><![CDATA[void]]></category>
		<category><![CDATA[White]]></category>
		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false">http://www.shaxam.com/?p=29</guid>
		<description><![CDATA[Elements deriving from UIElement inherit a set of common events. Events are used in XAML to specify the codebehind handler that will be executed when the specified event is raised. All events can be assigned a codebehind handler using the following syntax: Elements specifying a codebehind handler must declare the Name attribute in order to [...]]]></description>
			<content:encoded><![CDATA[<p>Elements deriving from UIElement inherit a set of common events. Events are used in XAML to specify the codebehind handler that will be executed when the specified event is raised. All events can be assigned a codebehind handler using the following syntax:</p>
<p><Element Name="ElementName" EventName="CodeBehindHandler" /></p>
<p>Elements specifying a codebehind handler must declare the Name attribute in order to be referenced in the codebehind class.<br />
<span id="more-29"></span><br />
C# implementation of event handlers<br />
public partial class MouseEnterMouseLeave<br />
{<br />
    void MouseEnterHandler (object sender, MouseEventArgs e)<br />
    {<br />
        MyButton .Background=Brushes.Red;<br />
        MyButton .Content=&#8221;Mouse is over me &#8220;;<br />
    }<br />
    void MouseLeaveHandler (object sender, MouseEventArgs e)<br />
    {<br />
        MyButton .Background=Brushes.White;<br />
        MyButton .Content=&#8221;Mouse is not over me &#8220;;<br />
    }<br />
}</p>
<p>VisualBasic implementation of event handlers<br />
Partial Public Class MouseEnterMouseLeave<br />
    Sub MouseEnterHandler (ByVal sender as Object, ByVal e As MouseEventArgs<br />
        MyButton .Background = Brushes.Red<br />
        MyButton .Content = &#8220;Mouse is over me &#8221;<br />
    End Sub<br />
    Sub MouseLeaveHandler (ByVal sender As Object, ByVal e as MouseEventArgs<br />
        MyButton .Background = Brushes.White<br />
        MyButton .Content = &#8220;Mouse is not over me &#8221;<br />
    End Sub<br />
End Class</p>
<p>XAML declaration of event handlers for Button<br />
<StackPanel<br />
    xmlns="http://schemas.microsoft.com/winfx/avalon/2005"<br />
    xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"<br />
    x :Class="ButtonExample.MouseEnterMouseLeave "<br />
    <Button<br />
        Content="Mouse is not over me "<br />
        MouseEnter="MouseEnterHandler "<br />
        MouseLeave="MouseLeaveHandler "<br />
        Name="MyButton " /><br />
</StackPanel></p>
<p>The following events are common to all UIElement-derived elements. Events specific to the element are listed with the element description.</p>
<p>DragEnter<br />
DragLeave<br />
DragOver<br />
Drop<br />
GotFocus<br />
IsVisibleChanged<br />
IsEnableChanged<br />
IsFocusChanged<br />
KeyUp<br />
KeyDown<br />
LayoutUpdated<br />
LostFocus<br />
MouseEnter<br />
MouseLeave<br />
MouseMove<br />
MouseLeftButtonDown<br />
MouseLeftButtonUp<br />
MouseRightButtonDown<br />
MouseRightButtonUp<br />
PreviewDragOver<br />
PreviewDragEnter<br />
PreviewDragLeave<br />
PreviewDrop<br />
PreviewKeyUp<br />
PreviewKeyDown<br />
PreviewMouseLeftButtonDown<br />
PreviewMouseLeftButtonUp<br />
PreviewMouseRightButtonDown<br />
PreviewMouseRightButtonUp<br />
PreviewMouseMove</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaxam.com/xaml-events-element/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XAML Routed Event Strategies</title>
		<link>http://www.shaxam.com/xaml-routed-event-strategies/</link>
		<comments>http://www.shaxam.com/xaml-routed-event-strategies/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 03:26:33 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Avalon]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[child]]></category>
		<category><![CDATA[child elements]]></category>
		<category><![CDATA[codepath]]></category>
		<category><![CDATA[creation]]></category>
		<category><![CDATA[Direct]]></category>
		<category><![CDATA[direction]]></category>
		<category><![CDATA[element]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[event handlers]]></category>
		<category><![CDATA[Forms]]></category>
		<category><![CDATA[Handled]]></category>
		<category><![CDATA[KeyDown]]></category>
		<category><![CDATA[KeyUp]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[NET]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[parameter]]></category>
		<category><![CDATA[parent elements]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[performance advantages]]></category>
		<category><![CDATA[Preview]]></category>
		<category><![CDATA[PreviewKeyDown]]></category>
		<category><![CDATA[PreviewKeyUp]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[Routed]]></category>
		<category><![CDATA[routing]]></category>
		<category><![CDATA[source element]]></category>
		<category><![CDATA[target element]]></category>
		<category><![CDATA[tree]]></category>
		<category><![CDATA[Trigger]]></category>
		<category><![CDATA[Tunneling]]></category>
		<category><![CDATA[type]]></category>
		<category><![CDATA[use]]></category>
		<category><![CDATA[word preview]]></category>
		<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://www.shaxam.com/?p=27</guid>
		<description><![CDATA[There are three types of routed event strategies in Avalon: bubble, direct, and tunnel: Bubble A bottom-up routing strategy. The target element is first notified, then its parent, then its parent, and so on. If the event is marked Handled, then no other event handlers will be invoked. Microsoft suggests marking an event as Handled [...]]]></description>
			<content:encoded><![CDATA[<p>There are three types of routed event strategies in Avalon: bubble, direct, and tunnel:</p>
<p><strong>Bubble</strong><br />
A bottom-up routing strategy. The target element is first notified, then its parent, then its parent, and so on. If the event is marked Handled, then no other event handlers will be invoked. Microsoft suggests marking an event as Handled as soon as you know that there are no further elements along the route because there are performance advantages to keeping the codepath as short as possible.<br />
<span id="more-27"></span><br />
<strong>Direct</strong><br />
The type of routing strategy used by Windows Forms and other Microsoft .NET libraries. Direct routing means that only the event source element is notified. If the event was raised by a Button, then only the Button in question will receive notification. Very few UI events in Avalon use the direct-routing strategy.</p>
<p><strong>Tunnel</strong><br />
Works in the opposite direction as bubble; it starts at the root of the tree and works down, stopping with the target element. Tunneling events are prefixed in Avalon with the word Preview. Generally, there is a corresponding bubble event for each tunnel event. If the tunnel event is named PreviewKeyDown, then the bubble event is called KeyDown. Similarly, if there is a bubble event called KeyUp, then there is likely a tunneling event called PreviewKeyUp.</p>
<p>Because of tunneling and bubbling, parent elements often receive events when the source is one of their child elements. If necessary, the source of the event can be determined programmatically by accessing the Source property of the EventArgs parameter passed to the event handler.</p>
<p>Not all events are routed. The XAML designer will need to know whether they are, because routed events can be used within styles to created triggers; non-routed events cannot. Events are specifically marked as routed or non-routed to assist the XAML designer with trigger creation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaxam.com/xaml-routed-event-strategies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Animation based on KeyFrames</title>
		<link>http://www.shaxam.com/animation-based-on-keyframes/</link>
		<comments>http://www.shaxam.com/animation-based-on-keyframes/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 03:24:19 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[amount]]></category>
		<category><![CDATA[amount of time]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[attribute]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[concept]]></category>
		<category><![CDATA[Creating]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[duration]]></category>
		<category><![CDATA[element]]></category>
		<category><![CDATA[elements]]></category>
		<category><![CDATA[fragment]]></category>
		<category><![CDATA[frame animations]]></category>
		<category><![CDATA[interpolation]]></category>
		<category><![CDATA[interpolation methods]]></category>
		<category><![CDATA[iterate]]></category>
		<category><![CDATA[key frame]]></category>
		<category><![CDATA[key frames]]></category>
		<category><![CDATA[KeyFrame]]></category>
		<category><![CDATA[keyframe animation]]></category>
		<category><![CDATA[KeyTime]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[number]]></category>
		<category><![CDATA[pace]]></category>
		<category><![CDATA[percentage]]></category>
		<category><![CDATA[primitive data]]></category>
		<category><![CDATA[set]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[SplineDoubleKeyFrame]]></category>
		<category><![CDATA[technique]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[total]]></category>
		<category><![CDATA[type]]></category>
		<category><![CDATA[Uniform]]></category>
		<category><![CDATA[value]]></category>
		<category><![CDATA[valuesand]]></category>
		<category><![CDATA[way]]></category>
		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false">http://www.shaxam.com/?p=25</guid>
		<description><![CDATA[KeyFrame animations are another method for animating elements in XAML. They differ from non-key animations in that they use a number of key frames (values) as the destination rather than allowing the system to iterate through the values. KeyFrame animations allow you to control the specific valuesand the interpolation methods used to arrive at themacross [...]]]></description>
			<content:encoded><![CDATA[<p>KeyFrame animations are another method for animating elements in XAML. They differ from non-key animations in that they use a number of key frames (values) as the destination rather than allowing the system to iterate through the values. KeyFrame animations allow you to control the specific valuesand the interpolation methods used to arrive at themacross a number of key frames that make up the animation.</p>
<p>KeyFrame animations use different classes than non-key frame animations, but they are easily recognizable because each one uses the term &#8220;KeyFrame&#8221; in its name. As with non-key animations, there are KeyFrame animations for almost every primitive data type and some XAML elements.<br />
<span id="more-25"></span><br />
Creating a KeyFrame animation requires the following steps:<br />
1. Set a Duration for the animation.<br />
2. For each key frame, select its appropriate type, set its value and key time, and add it to the animation&#8217;s KeyFrame collection.<br />
3. Associate the animation with an element&#8217;s attribute, just as you would for a non-key animation.</p>
<p>Using KeyFrame animations instead of a non-key animation is a good way to illustrate the concept of a KeyFrame. The first step is to understand KeyTime, which is required for each key frame added to the animation&#8217;s KeyFrames collection.</p>
<p>A KeyTime specifies when the key frame will end, as illustrated in the following example. It is tempting to view KeyTime as the amount of time the key frame will play, but this is incorrect. That value is determined by when the key frame ends, when the previous key frame ended, and the animation&#8217;s duration.</p>
<p>    <DoubleAnimationUsingKeyFrames Duration="0:0:10"><br />
        <LinearDoubleKeyFrame Value="0" KeyTime="0:0:3" /><br />
        <LinearDoubleKeyFrame Value="100" KeyTime="0:0:10" /></p>
<p>In this XAML fragment, the animation has a Duration of 10 seconds. The first key frame&#8217;s KeyTime is set to 0:0:3, which means it will end three seconds into the animation. The second key frame&#8217;s KeyTime is set to 0:0:10, which means it will end when the animation ends. Because the previous key frame ends at 3 seconds, and the second key frame is set to end at 10 seconds, the second key frame will play for a total of 7 seconds.</p>
<p>The KeyTime attribute can be specified using other values. It is most commonly specified as a duration, but you can also express the key time as a percentage of the total duration, or you can allow the interpreter to allocate time based on a distribution pattern that either spreads the duration equally over all frames or distributes it across key frames such that the animation will progress at a steady pace.</p>
<p>The possible values for KeyTime are:</p>
<p>KeyTime<br />
This value can be specified as a duration (hours:minutes:seconds) or as a percentage of the total duration, e.g., 20%.</p>
<p>Uniform<br />
This value automatically distributes the duration across all key frames based on how many there are. If the Duration is set to 10 seconds and there are five key frames, each key frame will play for 2 seconds (10/5 = 2). This can result in non-uniform speed because it is based on the number of key frames, not the change in values!</p>
<p>Paced<br />
This value automatically distributes the duration based on the number of key frames and value changes to ensure a smooth, even speed.</p>
<p>Most KeyFrame elements have three distinct types: linear, discrete, and spline . Each uses a different interpolation technique to move from the previous value to the destination value. The interpolation technique used can be determined from the name of the KeyFrame, e.g., SplineDoubleKeyFrame uses a spline interpolation technique, while LinearDoubleKeyFrame uses a linear interpolation technique.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaxam.com/animation-based-on-keyframes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

