{"id":37457,"date":"2024-11-01T09:57:43","date_gmt":"2024-11-01T09:57:43","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37457"},"modified":"2024-11-01T11:02:38","modified_gmt":"2024-11-01T11:02:38","slug":"uwp-development-easing","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37457\/","title":{"rendered":"UWP Development, Easing"},"content":{"rendered":"<p><body><\/p>\n<p>UWP (Universal Windows Platform) development provides various tools and frameworks necessary for creating modern applications. Among them, Easing is an important feature that makes user interface (UI) animations smoother and more natural. In this article, we will explore the concept of Easing, its implementation in UWP, and examples of various Easing functions.<\/p>\n<h2>1. Concept of Easing<\/h2>\n<p>Easing provides a way to change the start and end of animations naturally and smoothly. This makes animations more appealing and provides users with a more intuitive experience. Generally, Easing is implemented using functions that vary the speed of the animation over time.<\/p>\n<h3>1.1 Types of Easing Functions<\/h3>\n<p>UWP offers several types of Easing functions. Each function defines how the speed of the animation changes. Representative Easing functions include:<\/p>\n<ul>\n<li><strong>Linear:<\/strong> No change in speed. The animation proceeds at a constant speed.<\/li>\n<li><strong>Quad:<\/strong> A curve where speed starts slowly and then accelerates.<\/li>\n<li><strong>Cubic:<\/strong> Speed changes more dramatically, starting slowly and then changing quickly.<\/li>\n<li><strong>Quart:<\/strong> An Easing function that shows more extreme changes in speed.<\/li>\n<li><strong>Back:<\/strong> The animation moves back slightly to the clicked position at the start.<\/li>\n<li><strong>Bounce:<\/strong> Creates an animation like an object bouncing off the ground.<\/li>\n<li><strong>Elastic:<\/strong> Gives the feel of an object overshooting and then returning to its original position.<\/li>\n<\/ul>\n<h2>2. Implementing Easing in UWP<\/h2>\n<p>To use Easing in UWP, you can apply the <code>EasingFunctionBase<\/code> class as an example in Animations. These functionalities can be easily used in both XAML and C# code.<\/p>\n<h3>2.1 Using Easing in XAML<\/h3>\n<p>In XAML, you can define a <code>Storyboard<\/code> and use various Easing functions within it.<\/p>\n<h4>Example: Implementing Easing in XAML<\/h4>\n<pre><code>&lt;Page&gt;\n        &lt;Grid Background=\"{ThemeResource ApplicationPageBackgroundThemeBrush}\"&gt;\n            &lt;Button x:Name=\"myButton\" Content=\"Move\" Width=\"100\" Height=\"50\" Click=\"MyButton_Click\" \/&gt;\n        &lt;\/Grid&gt;\n\n        &lt;Page.Resources&gt;\n            &lt;Storyboard x:Name=\"myStoryboard\"&gt;\n                &lt;DoubleAnimation \n                    Storyboard.TargetName=\"myButton\" \n                    Storyboard.TargetProperty=\"(Canvas.Left)\"\n                    From=\"0\" To=\"300\" Duration=\"0:0:2\"&gt;\n                    &lt;DoubleAnimation.EasingFunction&gt;\n                        &lt;QuadraticEase EasingMode=\"EaseInOut\" \/&gt;\n                    &lt;\/DoubleAnimation.EasingFunction&gt;\n                &lt;\/DoubleAnimation&gt;\n            &lt;\/Storyboard&gt;\n        &lt;\/Page.Resources&gt;\n\n        &lt;Page.Triggers&gt;\n            &lt;EventTrigger RoutedEvent=\"Button.Click\"&gt;\n                &lt;BeginStoryboard Storyboard=\"{StaticResource myStoryboard}\" \/&gt;\n            &lt;\/EventTrigger&gt;\n        &lt;\/Page.Triggers&gt;\n    &lt;\/Page&gt;<\/code><\/pre>\n<p>In the example above, clicking the button smoothly moves it from left to right. The <code>QuadraticEase<\/code> is used to provide the Easing effect. The EasingMode property can be used to control the mode of the animation.<\/p>\n<h3>2.2 Using Easing in C# Code<\/h3>\n<p>Easing can also be set up in C# code. You can create a <code>Storyboard<\/code> object and set the <code>EasingFunction<\/code> to implement the animation.<\/p>\n<h4>Example: Implementing Easing in C#<\/h4>\n<pre><code>private void MyButton_Click(object sender, RoutedEventArgs e)\n    {\n        DoubleAnimation animation = new DoubleAnimation();\n        animation.From = 0;\n        animation.To = 300;\n        animation.Duration = new Duration(TimeSpan.FromSeconds(2));\n\n        QuadraticEase easeFunction = new QuadraticEase();\n        easeFunction.EasingMode = EasingMode.EaseInOut;\n        animation.EasingFunction = easeFunction;\n\n        Storyboard storyboard = new Storyboard();\n        storyboard.Children.Add(animation);\n        Storyboard.SetTarget(animation, myButton);\n        Storyboard.SetTargetProperty(animation, \"Canvas.Left\");\n        storyboard.Begin();\n    }<\/code><\/pre>\n<p>This code triggers an animation when the button is clicked, with a smooth effect using the <code>QuadraticEase<\/code> Easing function.<\/p>\n<h2>3. Various Use Cases of Easing Functions<\/h2>\n<p>By utilizing the various Easing functions provided by UWP, you can diversify the style of animations.<\/p>\n<h3>3.1 Smooth Animation<\/h3>\n<pre><code><page.resources>\n        <storyboard x:name=\"smoothStoryboard\">\n            <doubleanimation duration=\"0:0:2\" from=\"0\" storyboard.targetname=\"myButton\" storyboard.targetproperty=\"(Canvas.Left)\" to=\"300\">\n                <doubleanimation.easingfunction>\n                    <cubicease easingmode=\"EaseInOut\"><\/cubicease>\n                <\/doubleanimation.easingfunction>\n            <\/doubleanimation>\n        <\/storyboard>\n    <\/page.resources>\n    ...\n    <\/code><\/pre>\n<h3>3.2 Bounce Animation<\/h3>\n<pre><code><page.resources>\n        <storyboard x:name=\"bounceStoryboard\">\n            <doubleanimation duration=\"0:0:2\" from=\"0\" storyboard.targetname=\"myButton\" storyboard.targetproperty=\"(Canvas.Left)\" to=\"300\">\n                <doubleanimation.easingfunction>\n                    <bounceease bounciness=\"3\" easingmode=\"EaseOut\"><\/bounceease>\n                <\/doubleanimation.easingfunction>\n            <\/doubleanimation>\n        <\/storyboard>\n    <\/page.resources>\n    ...\n    <\/code><\/pre>\n<h3>3.3 Back Animation<\/h3>\n<pre><code><page.resources>\n        <storyboard x:name=\"backStoryboard\">\n            <doubleanimation duration=\"0:0:2\" from=\"0\" storyboard.targetname=\"myButton\" storyboard.targetproperty=\"(Canvas.Top)\" to=\"200\">\n                <doubleanimation.easingfunction>\n                    <backease amplitude=\"0.5\" easingmode=\"EaseOut\"><\/backease>\n                <\/doubleanimation.easingfunction>\n            <\/doubleanimation>\n        <\/storyboard>\n    <\/page.resources>\n    ...\n    <\/code><\/pre>\n<h2>4. Improving UI\/UX through Easing<\/h2>\n<p>By appropriately utilizing Easing functions, you can significantly enhance the UI\/UX. Smooth animations provide users with a natural experience and increase the appeal of the application. You can apply <code>Easing<\/code> differently based on user interactions to offer more varied experiences.<\/p>\n<h3>4.1 Strengthening User Feedback<\/h3>\n<p>By providing appropriate responses through Easing when clicking buttons or selecting menus, users can recognize the actions they have taken. For example, a button that jumps slightly when clicked can help the user realize that the click was successful.<\/p>\n<h3>4.2 Transforming Ordinary Processes into Special Experiences<\/h3>\n<p>Applying animations during common tasks allows users to have a more enjoyable experience while performing those tasks. For instance, during data loading, applying Easing along with a rotating circular loading animation can provide smooth and refined visual effects.<\/p>\n<h2>5. Conclusion<\/h2>\n<p>Easing plays a vital role in making animations in UWP development smoother and more intuitive. With various Easing functions, users can experience a natural and attractive UI, which positively impacts the overall quality of the application. This document aims to help you understand and utilize Easing in UWP application development.<\/p>\n<footer>\n<p>\u00a9 2023. UWP Easing Tutorial.<\/p>\n<\/footer>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>UWP (Universal Windows Platform) development provides various tools and frameworks necessary for creating modern applications. Among them, Easing is an important feature that makes user interface (UI) animations smoother and more natural. In this article, we will explore the concept of Easing, its implementation in UWP, and examples of various Easing functions. 1. Concept of &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37457\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;UWP Development, Easing&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[115],"tags":[],"class_list":["post-37457","post","type-post","status-publish","format-standard","hentry","category-uwp-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>UWP Development, Easing - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/37457\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"UWP Development, Easing - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"UWP (Universal Windows Platform) development provides various tools and frameworks necessary for creating modern applications. Among them, Easing is an important feature that makes user interface (UI) animations smoother and more natural. In this article, we will explore the concept of Easing, its implementation in UWP, and examples of various Easing functions. 1. Concept of &hellip; \ub354 \ubcf4\uae30 &quot;UWP Development, Easing&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37457\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:57:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:02:38+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/37457\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37457\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"UWP Development, Easing\",\"datePublished\":\"2024-11-01T09:57:43+00:00\",\"dateModified\":\"2024-11-01T11:02:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37457\/\"},\"wordCount\":559,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"UWP Programming\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37457\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37457\/\",\"name\":\"UWP Development, Easing - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:57:43+00:00\",\"dateModified\":\"2024-11-01T11:02:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37457\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37457\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37457\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"UWP Development, Easing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"UWP Development, Easing - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/37457\/","og_locale":"ko_KR","og_type":"article","og_title":"UWP Development, Easing - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"UWP (Universal Windows Platform) development provides various tools and frameworks necessary for creating modern applications. Among them, Easing is an important feature that makes user interface (UI) animations smoother and more natural. In this article, we will explore the concept of Easing, its implementation in UWP, and examples of various Easing functions. 1. Concept of &hellip; \ub354 \ubcf4\uae30 \"UWP Development, Easing\"","og_url":"https:\/\/atmokpo.com\/w\/37457\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:57:43+00:00","article_modified_time":"2024-11-01T11:02:38+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/37457\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37457\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"UWP Development, Easing","datePublished":"2024-11-01T09:57:43+00:00","dateModified":"2024-11-01T11:02:38+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37457\/"},"wordCount":559,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["UWP Programming"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37457\/","url":"https:\/\/atmokpo.com\/w\/37457\/","name":"UWP Development, Easing - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:57:43+00:00","dateModified":"2024-11-01T11:02:38+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37457\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37457\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37457\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"UWP Development, Easing"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=37457"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37457\/revisions"}],"predecessor-version":[{"id":37458,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37457\/revisions\/37458"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}