WPF рдореЗрдВ рдПрдирд┐рдореЗрд╢рди

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛



рдЕрднрд┐рд╡рд╛рджрди, рдкреНрд░рд┐рдп habrayuzery! рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ WPF рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдмреЗрд╢рдХ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╣рдм рдкрд░ рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдореЗрд░реА рдкреЛрд╕реНрдЯ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╣реЛрдЧреА, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрдВрдЧреЗред

WPF рдореЗрдВ рдПрдиреАрдореЗрд╢рди рд╣рд░ рдЙрд╕ рдЪреАрдЬрд╝ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдЖрдкрдиреЗ рдЕрдкрдиреА рд╕реНрдкрд╖реНрдЯрддрд╛ рдФрд░ рд╕рд╛рджрдЧреА рд╕реЗ рдкрд╣рд▓реЗ рджреЗрдЦреА рдереАред рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЯрд╛рдЗрдорд░ рдкрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рджреГрд╢реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдерд╛, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛ред рдЕрдм рдЖрдк XAML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ C # (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп .Net рднрд╛рд╖рд╛) рдореЗрдВ рдХреЛрдб рдХреА рдПрдХ рднреА рдкрдВрдХреНрддрд┐ рд▓рд┐рдЦреЗ рдмрд┐рдирд╛ рдПрдХ рдПрдиреАрдореЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдХреЛрдб рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдмрдирд╛ рд░рд╣рд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред WPF рдореЗрдВ рдПрдиреАрдореЗрд╢рди рддрддреНрд╡ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдХреБрдЫ рд╕рдордп рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ 60 рдмрд╛рд░, рдЬрдм рддрдХ рдЖрдк рдЗрд╕реЗ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рддреЗ) рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реНрд╡рдпрдВ рдХреЛ рдмрдиреЗ рд░рд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдПрдХ рдмрдЯрди рдХреЛ рдЪреЗрддрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдиреАрдореЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдПрдХ "рдмрдЯрди" рд░рд╣реЗрдЧрд╛, рдЕрд░реНрдерд╛рддред рдЖрдк рдЗрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдХрдЯ рдХреЗ рддрд╣рдд рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб, рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЪрд┐рддреНрд░ ...





рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░



WPF рдореЗрдВ рд╕рднреА рдПрдирд┐рдореЗрд╢рди System.Windows.Media.Animation рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╣реИрдВ ред рд╕рднреА рдПрдиреАрдореЗрд╢рди рдХрдХреНрд╖рд╛рдПрдВ, рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд╛рдо рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, DoubleAnimation рдбрдмрд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рддрд╛ рд╣реИред



рдПрдирд┐рдореЗрд╢рди рддреАрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ:

1. рд▓реАрдирд┐рдпрд░ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди ( рдПрдирд┐рдореЗрд╢рди рдкреНрд░реЙрдкрд░реНрдЯреА рдЯрд╛рдЗрдк ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

2. Keyframes рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдирд┐рдореЗрд╢рди ( рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рдХрд╛рд░ UsingKeyFrames рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ )

3. рдкрде рдПрдирд┐рдореЗрд╢рди ( рдкреНрд░рдпреЛрдЧ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рдХрд╛рд░ )



рд╕рднреА рдПрдирд┐рдореЗрд╢рди рдПрдирд┐рдореЗрд╢рдирдмреЗрд╕ рдкреНрд░реЙрдкрд░реНрдЯреА рдЯрд╛рдЗрдк рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВред рдЗрд╕ рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреАрд╕реАрдПрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдиреАрдореЗрд╢рди рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВред

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП XAML рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдПрдиреАрдореЗрд╢рди рджреЗрдЦреЗрдВ:

< Button >

< Button.Triggers >

< EventTrigger RoutedEvent ="Button.Click" >

< BeginStoryboard >

< Storyboard >

< ThicknessAnimation

From ="0"

To ="200"

Duration ="0:0:5"

Storyboard . TargetProperty

="Margin" />

</ Storyboard >

</ BeginStoryboard >

</ EventTrigger >

</ Button.Triggers >

</ Button >




* This source code was highlighted with Source Code Highlighter .






рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

тАв рдерд┐рдХрдиреЗрд╕рдПрдиреАрдореЗрд╢рди - рд╕реНрд╡рдпрдВ рдПрдиреАрдореЗрд╢рдиред

тАв рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб - "рдЯрд╛рдЗрдорд▓рд╛рдЗрди"ред рд╣рдо рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

тАв рд╕реНрдЯрд╛рд░реНрдЯрд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб - рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП "рд░реИрдкрд░", рдЬреЛ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред

тАв EventTrigger - рдПрдХ рдШрдЯрдирд╛ рдкрд░ рдЯреНрд░рд┐рдЧрд░ред



рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ:



рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рд╕рд╣реА рдХреЗ рдмрд╛рджред



MSDN рдкрд░ рдПрдХ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдгред рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреИрдЧ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣реИрдмрд░рдкрд░ рдХреЛ рдЫреЛрдбрд╝рддрд╛ рдирд╣реАрдВ рд╣реИред



рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдПрдиреАрдореЗрд╢рди рдХреЛ рднреА рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

< Button >

< Button.Style >

< Style >

< Style.Triggers >

< Trigger Property ="Button.IsPressed"

Value ="True" >

< Trigger.EnterActions >

< BeginStoryboard >

< Storyboard >

< ThicknessAnimation

From ="0" To ="200"

Duration ="0:0:5"

Storyboard . TargetProperty

="Margin" />

</ Storyboard >

</ BeginStoryboard >

</ Trigger.EnterActions >

</ Trigger >

</ Style.Triggers >

</ Style >

</ Button.Style >

</ Button >




* This source code was highlighted with Source Code Highlighter .






рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред



рдорд╣реАрди рдЯреНрдпреВрдирд┐рдВрдЧ



Storyboard.TargetProperty рдкреНрд░реЙрдкрд░реНрдЯреА


рдпрд╣ рд╕рдВрд▓рдЧреНрди рд╕рдВрдкрддреНрддрд┐ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдорд╛рд░реНрдЬрд┐рди рдХреЛ рд╕рдВрдкрддреНрддрд┐ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред



Storyboard.TargetName рд╕рдВрдкрддреНрддрд┐


рдпрд╣ рд╕рдВрд▓рдЧреНрди рд╕рдВрдкрддреНрддрд┐ XAML рджреГрд╢реНрдпрддрд╛ рдХреЗ рднреАрддрд░ рд▓рдХреНрд╖реНрдп рддрддреНрд╡ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдпрджрд┐ рд╣рдо XAML рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдиреАрдореЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



Storyboard.Target рд╕рдВрдкрддреНрддрд┐


рдпрд╣ рд╕рдВрд▓рдЧреНрди рдЧреБрдг рд▓рдХреНрд╖реНрдп рддрддреНрд╡ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдПрдиреАрдореЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХреЛрдб рдореЗрдВ рдПрдирд┐рдореЗрд╢рди рдмрдирд╛рддреЗ рд╕рдордп рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред MSDN рдкрд░ рдЙрджрд╛рд╣рд░рдгред



рд╕рдВрдкрддреНрддрд┐ рд╕реЗ


рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди рд╕реЗрдЯ рдХрд░рддреА рд╣реИ, рдЕрд░реНрдерд╛рдд рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░, рдЗрд╕ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдПрдХ рдПрдиреАрдореЗрд╢рди рдХреЗ рдЕрдВрдд рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛, рдПрдХ рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХреЛрдИ "рдЭрдЯрдХрд╛" рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдБрдЪрд╛рдИ рдЧреБрдгреЛрдВ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЬрд╛рдБрдЪ рд▓реЗрдВ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп Double.NaN рдирд╣реАрдВ рд╣реИред



рдХреЛ рд╕рдВрдкрддреНрддрд┐


рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ рднреА рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдирд┐рдореЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдмрдЯрди рдкрд░ рд╣реЛрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдиреАрдореЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдХрд░реНрд╕рд░ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдПрдиреАрдореЗрд╢рди рдмрдирд╛рдПрдВ, рдлрд┐рд░ рдЬрдм рдЖрдк рдмрдЯрди рдХреЛ рдЙрд╕рдХреЗ рдореВрд▓ рдЖрдХрд╛рд░ рдореЗрдВ "рд╕рдВрдХреАрд░реНрдг" рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред



рд╕рдВрдкрддреНрддрд┐ рджреНрд╡рд╛рд░рд╛


рдпрд╣ рдЧреБрдг рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдВрддрд┐рдо рд╕рдВрдкрддреНрддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдЬрдм рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдкрддреНрддрд┐ рд╕рдВрдкрддреНрддрд┐ рд╕реЗ + рдореВрд▓реНрдп рд▓реЗрддреА рд╣реИред рдпрд╣ XAML рдореЗрдВ рдПрдирд┐рдореЗрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рд╕рдВрдкрддреНрддрд┐ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдПрдирд┐рдореЗрд╢рди рдореЗрдВ рдореМрдЬреВрдж рд╣реИред



IsAdditive рд╕рдВрдкрддреНрддрд┐


рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдЖрдкрдХреЛ рд╕рд╛рдкреЗрдХреНрд╖ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдФрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдЕрдЧрд░ рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдЯреНрд░реВ рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп "рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп + рд╕реЗ ", рдФрд░ рдЕрдВрддрд┐рдо "рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп + рдЯреВ " рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ред



рдЕрд╡рдзрд┐ рд╕рдВрдкрддреНрддрд┐


рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдПрдиреАрдореЗрд╢рди рдХреА рдЕрд╡рдзрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдиреЛрдЯ - рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдкреНрд░рдХрд╛рд░ TimeSpan рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрд╡рдзрд┐ рд╣реИ ред рдлрд┐рд░ рд╕рдордп рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдорд╕реНрдкреИрди рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╣рд┐рдд рдХрд╛рд╕реНрдЯ рд╣реИред "рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ рдЕрд╡рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?" рдЖрдк рдХрд╣рддреЗ рд╣реИрдВред рдлрд┐рд░, рд╡рд╣ рдЕрд╡рдзрд┐ рдорд╛рди Duration.Automatic (1 рд╕реЗрдХрдВрдб рдХреЗ рдмрд░рд╛рдмрд░) рдФрд░ Duration.Forever (рдПрдиреАрдореЗрд╢рди рдХреБрдЫ рднреА рдирд╣реАрдВ) рд▓реЗ рд╕рдХрддреА рд╣реИред



рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдкрддреНрддрд┐


рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЗрд░реА рд╕реЗрдЯ рдХрд░рддреА рд╣реИред рдпрд╣рд╛рдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред MSDN рдкрд░ рдЙрджрд╛рд╣рд░рдгред



рд╕реНрдкреАрдб рдЕрдиреБрдкрд╛рдд рд╕рдВрдкрддреНрддрд┐


рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдПрдиреАрдореЗрд╢рди рдХреА рдЧрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдЗрд╕рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп 1D рд╣реИред рдЗрд╕рдХреА рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рдЧрддрд┐ рддрджрдиреБрд╕рд╛рд░ рдмрдврд╝ рдЬрд╛рдПрдЧреА, рдФрд░ рдЗрд╕рдХреА рдХрдореА рдХреЗ рд╕рд╛рде рдпрд╣ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ 2 рдбреА рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧрддрд┐ рджреЛрдЧреБрдиреА рд╣реЛ рдЬрд╛рдПрдЧреАред



AccelerationRatio рдФрд░ DecelerationRatio рдЧреБрдг


рдпреЗ рдЧреБрдг рддреНрд╡рд░рдг рдпрд╛ рдордВрджреА рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк AccelerationRatio рдЧреБрдгрдирдлрд▓ рдХреЛ 0.5 рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдЖрдзреЗ рд╕рдордп рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдореЗрдВ рддреЗрдЬреА рдЖрдПрдЧреАред рдпрд╛ рдпрджрд┐ рдЖрдк 4 рд╕реЗрдХрдВрдб рдХреА рдХреБрд▓ рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде AccelerationRatio рдФрд░ DecelerationRatio 0.25 рдЧреБрдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛрдЧрд╛:

1. 1 рд╕реЗрдХрдВрдб рд╕реЗ рдПрдиреАрдореЗрд╢рди рдХрд╛ рддреНрд╡рд░рдг

2. 2 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдЧрддрд┐

3. 1 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдПрдиреАрдореЗрд╢рди рдзреАрдорд╛ рдХрд░реЗрдВ



рдЗрди рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдореВрд▓реНрдп 1 рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ 0 рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



рдСрдЯреЛрд░рд┐рдпрд░ рдкреНрд░реЙрдкрд░реНрдЯреА


рдпрджрд┐ рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рд╕рддреНрдп рд╣реИ, рддреЛ рдПрдиреАрдореЗрд╢рди рдХреЗ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╛рдиреА рдпрджрд┐ рдмрдЯрди рдмрдврд╝ рдЧрдпрд╛, рддреЛ рдпрд╣ рдШрдЯ рдЬрд╛рдПрдЧрд╛ред



рдмрд┐рдЧрд┐рдирдЯрд╛рдЗрдо рдХреЗрд╡рд▓ рдПрдиреАрдореЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рджреЗрд░реА рдирд╣реАрдВ рд╣реЛрдЧреАред



рдПрдирд┐рдореЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░



рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:



рд░реИрдЦрд┐рдХ рдПрдиреАрдореЗрд╢рди


рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рдпрд╣ рд░реИрдЦрд┐рдХ рдкреНрд░рдХреНрд╖реЗрдк рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рджреВрд╕рд░реЗ рд╕реЗ рдПрдХ рдореВрд▓реНрдп рдкрд░ рдПрдирд┐рдореЗрдЯ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдЬреЛ рд╣рдо рдорд╛рдирддреЗ рдереЗ, рд╡рд╣ рд╕рдм рд▓реАрдирд┐рдпрд░ рдПрдирд┐рдореЗрд╢рди рдерд╛ред



рдХреАрдлрд╝реНрд░реЗрдо рдПрдиреАрдореЗрд╢рди


рдпрд╣ рдПрдиреАрдореЗрд╢рди рдХреАрдлрд╝реНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк 3 рдбреА рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗ, рддреЛ рдЖрдк рдореБрдЭреЗ рд╕рдордЭреЗрдВрдЧреЗред

рдХреБрдВрдЬреА рдлрд╝реНрд░реЗрдореЛрдВ рдХрд╛ рдПрдиреАрдореЗрд╢рди рд╕рд╛рдзрд╛рд░рдг рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╢рд░реНрдд рдХреЗ рд╕рд╛рде - 1 рд╕реЗ рдЕрдзрд┐рдХ рдЕрдВрддрд┐рдо рдорд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ XAML рд╕реНрдирд┐рдкреЗрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

< Border Background ="White" >

< Border.Triggers >

< EventTrigger RoutedEvent ="Border.MouseDown" >

< EventTrigger.Actions >

< BeginStoryboard >

< Storyboard >

< ColorAnimationUsingKeyFrames

Storyboard . TargetProperty

="(Border.Background).

(SolidColorBrush.Color)"
>

< LinearColorKeyFrame

KeyTime ="0:0:2"

Value ="Blue" />

< LinearColorKeyFrame

KeyTime ="0:0:4"

Value ="Red" />

< LinearColorKeyFrame

KeyTime ="0:0:6"

Value ="Green" />

</ ColorAnimationUsingKeyFrames >

</ Storyboard >

</ BeginStoryboard >

</ EventTrigger.Actions >

</ EventTrigger >

</ Border.Triggers >

</ Border >




* This source code was highlighted with Source Code Highlighter .






ColorAnimationUsingKeyFrames - рдХреАрдлреНрд░реЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреЗрддрди рд░рдВрдЧред

LinearColorKeyFrame - рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рд╕рд╛рде рд░рдВрдЧ рдПрдиреАрдореЗрд╢рди рдХреА keyframesред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдЪрд╛рдмрд┐рдпрд╛рдВ рд╣реИрдВред рдЕрдм рдПрдиреАрдореЗрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдЗрд╕рд▓рд┐рдП "рдлреНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рдлрд╝реНрд░реЗрдо" рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП :):

рдЫрд╡рд┐



рдХреАрдлрд╝реНрд░реЗрдо рдХреЗ рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

1. рд░реИрдЦрд┐рдХ рдкреНрд░реЙрдкрд░реНрдЯреА рдЯрд╛рдЗрдк KeyFrame - рд░реИрдЦрд┐рдХ рдкреНрд░рдХреНрд╖реЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдХреАрдлрд╝реНрд░реЗрдоред

2. рдЕрд╕рддрдд рд╕рдВрдкрддреНрддрд┐ рдЯрд╛рдЗрдк рдХрд░реЗрдВ KeyFrame - рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдХреАрдлреНрд░реЗрдо ред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ObjectAnimationUsingKeyFrames рдХреЗ рд▓рд┐рдП рдХреАрдлрд╝реНрд░реЗрдо рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдкреНрд░рдХрд╛рд░ред

3. рд╕реНрдкрд╛рдп рдкреНрд░реЙрдкрд░реНрдЯреА рдЯрд╛рдЗрдк KeyFrame - рдмреЗрдЬрд╝рд┐рдпрд░ рдХрд░реНрд╡ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдПрдХ рдХреАрдлрд╝реНрд░реЗрдоред рд╡рдХреНрд░ рдмрд┐рдВрджреБ KeySpline рд╕рдВрдкрддреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдмрд╛рдХреА LinearKeyFrame рдХреЗ рд╕рдорд╛рди рд╣реИ (рдореИрдВ рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ)ред

4. рдЖрд╕рд╛рди рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рдХрд╛рд░ KeyFrame - LinearKeyFrame рдХреЗ рд╕рдорд╛рди, рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рдЪрд┐рдХрдирд╛рдИ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред EasingFunction рдкреНрд░реЙрдкрд░реНрдЯреА EasingFunctionBase рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ , рдЬреЛ рдПрдХ рд╕реБрдЪрд╛рд░реВ рдлрд╝рдВрдХреНрд╢рди рд╣реИред рд╕рднреА рдЙрдкрд▓рдмреНрдз рдЪрд┐рдХрдирд╛рдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВред MSDN рдкрд░ рдЪрд┐рдХрдиреЗрдкрди рдХреА рдЧреИрд▓рд░реА рд╕реБрд╡рд┐рдзрд╛рдПрдБред



рдкреНрд░рддреНрдпреЗрдХ рдХреАрдлрд╝реНрд░реЗрдо рдореЗрдВ рджреЛ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ:

тАв рдХреАрдЯрд╛рдЗрдо - рд╡рд╣ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╕рдВрдкрддреНрддрд┐ рд▓рдХреНрд╖реНрдп рдорд╛рди рд▓реЗрддреА рд╣реИред

тАв рдореВрд▓реНрдп - рдлреНрд░реЗрдо рдХрд╛ рд▓рдХреНрд╖реНрдп рдореВрд▓реНрдпред рдПрдиреАрдореЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред



рдкрде рдЖрдзрд╛рд░рд┐рдд рдПрдиреАрдореЗрд╢рди


рдПрдХ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рде-рдЖрдзрд╛рд░рд┐рдд рдПрдиреАрдореЗрд╢рди рдПрдХ PathGeometry рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЖрдЗрдП рдЗрд╕ XAML рдЯреБрдХрдбрд╝реЗ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

< Window.Resources >

< PathGeometry x:Key ="path" >

< PathFigure IsClosed ="True" >

< ArcSegment Point ="1,0"

Size ="50,25"

IsLargeArc ="True" />

</ PathFigure >

</ PathGeometry >

< Storyboard x:Key ="storyboard"

Storyboard . TargetName ="rect" >

< DoubleAnimationUsingPath

Storyboard . TargetProperty ="(Canvas.Left)"

PathGeometry ="{StaticResource path}"

Source ="X" Duration ="0:0:5" />

< DoubleAnimationUsingPath

Storyboard . TargetProperty ="(Canvas.Top)"

PathGeometry ="{StaticResource path}"

Source ="Y" Duration ="0:0:5" />

</ Storyboard >

</ Window.Resources >

< Canvas >

< Path Data ="{StaticResource path}"

StrokeThickness ="2" Stroke ="Black"

Canvas . Left ="50" />

< Rectangle x:Name ="rect" Stroke ="Black"

StrokeThickness ="2" Width ="10"

Height ="10" >

< Rectangle.RenderTransform >

< TranslateTransform X ="45" Y ="-5" />

</ Rectangle.RenderTransform >

</ Rectangle >

</ Canvas >




* This source code was highlighted with Source Code Highlighter .






рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ рдкрде-рдЖрдзрд╛рд░рд┐рдд рдПрдиреАрдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред PathGeometry рдЧреБрдг PathGeometry рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрде рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рд╣реЛрддреА рд╣реИред рд╕реНрд░реЛрдд рд╕рдВрдкрддреНрддрд┐ рдЕрдкрдирд╛ рдЖрдЙрдЯрдкреБрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, X рдпрд╛ Y рд╕рдордиреНрд╡рдпред



рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо



MSDN рдкрд░ рдЙрджрд╛рд╣рд░рдгред рдмреЗрд╢рдХ, рдЙрджрд╛рд╣рд░рдг рдПрдиреАрдореЗрд╢рди рдХреЗ рдкреНрд▓реЗрдмреИрдХ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдкрде-рдЖрдзрд╛рд░рд┐рдд рдПрдиреАрдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред



рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб - рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдЬрд╛рдирд╡рд░ рд╣реИ?



рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдХреНрд╕рд░ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рдПрдиреАрдореЗрд╢рди рдирд╣реАрдВ рдерд╛ред рдпрд╣ рд╡рд░реНрдЧ рдЖрдкрдХреЛ рдХрдИ рдПрдирд┐рдореЗрд╢рди рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЯрд╛рдЗрдорд▓рд╛рдЗрдирдЧреНрд░реБрдк рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ)ред рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдирд┐рдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрдн () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рддреБрд░рдВрдд 10 рдПрдирд┐рдореЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВред рдмреЗрд╢рдХ, рдПрдХрд▓ рдПрдирд┐рдореЗрд╢рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ, BeginStoryboard.Storyboard рд╕рдВрдкрддреНрддрд┐ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдиреАрдореЗрд╢рди рдХреЛ "рд░реИрдк" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рдХреЛрдб рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдмрдирд╛рдПрдБ



рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ рдЕрдЧрд░ рдЖрдкрдиреЗ XAML рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рддрддреНрд╡ рдореЗрдВ рдПрдиреАрдореЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдЗрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдкрд░ рдмрд┐рдЧрд┐рдирд┐рдореЗрд╢рди () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред

 var animation = new ThicknessAnimation(); animation.From = new Thickness(20); animation.To = new Thickness(100); animation.Duration = TimeSpan.FromSeconds(5); button.BeginAnimation(MarginProperty, animation);
      
      







рдЖрдк рд╕рдВрд▓рдЧреНрди рдЧреБрдгреЛрдВ Storyboard.Target рдФрд░ Storyboard.TargetProperty рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рддрддреНрд╡ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛ред

 var animation1 = new ThicknessAnimation(); animation1.From = new Thickness(5); animation1.To = new Thickness(25); animation1.Duration = TimeSpan.FromSeconds(5); Storyboard.SetTarget(animation1, button1); Storyboard.SetTargetProperty(animation1, new PropertyPath(MarginProperty)); var animation2 = new ThicknessAnimation(); animation2.From = new Thickness(5); animation2.To = new Thickness(25); animation2.Duration = TimeSpan.FromSeconds(5); Storyboard.SetTarget(animation2, button2); Storyboard.SetTargetProperty(animation2, new PropertyPath(MarginProperty)); var storyboard = new Storyboard(); storyboard.Children = new TimelineCollection {animation1, animation2}; storyboard.Begin();
      
      







рдкреБрдирд╢реНрдЪ рдореИрдВ рдЖрдкрдХреЛ рдирдП рд╕рд╛рд▓ рдХреА рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд▓реЗрддрд╛ рд╣реВрдВ!

PSS рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрдардиреАрдпрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдХреЛрдб "рд╕рдВрдХреБрдЪрд┐рдд" рд╣реИ (рдореИрдВ рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ WP7 рд╕реЗ рд╣рдм рдкрдврд╝рддрд╛ рд╣реВрдВ)ред



All Articles