{"id":37541,"date":"2024-11-01T09:58:24","date_gmt":"2024-11-01T09:58:24","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37541"},"modified":"2024-11-01T11:02:19","modified_gmt":"2024-11-01T11:02:19","slug":"uwp-development-modifying-userdetailpage-view","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37541\/","title":{"rendered":"UWP Development, Modifying UserDetailPage View"},"content":{"rendered":"<p>UWP (Universal Windows Platform) development is a powerful platform that allows you to create applications that can run on various Windows devices. In this course, we will go into detail on how to modify the UserDetailPage view, which is part of a UWP application. Since UWP follows the MVVM (Model-View-ViewModel) architecture, we will adjust the layout and functionality of the UserDetailPage while adhering to these principles. We will also provide opportunities to practice through some example codes.<\/p>\n<h2>Understanding the Structure of UWP<\/h2>\n<p>UWP applications consist of several components. At its core, there are <strong>View<\/strong>, <strong>Model<\/strong>, and <strong>ViewModel<\/strong>. The View provides the user interface (UI). The Model manages data and business logic, while the ViewModel handles the interaction between the View and the Model.<\/p>\n<h2>What is UserDetailPage?<\/h2>\n<p>UserDetailPage is a screen that displays the user&#8217;s details. It is typically used to show information such as the user&#8217;s name, email, profile picture, and contact information. This page is an important user experience (UX) element as it helps users manage their information.<\/p>\n<h2>Setting Up the Basic UserDetailPage<\/h2>\n<p>First, let&#8217;s create a project and set up the basic UserDetailPage.<\/p>\n<h3>Step 1: Create a New UWP Project<\/h3>\n<p>Open Visual Studio and select <strong>New Project<\/strong>. Choose the UWP app template and set the project name to <strong>UserDetailApp<\/strong>. After the project is created, the default page <strong>MainPage.xaml<\/strong> will open.<\/p>\n<h3>Step 2: Add UserDetailPage<\/h3>\n<pre><code>XAML\n<page x:class=\"UserDetailApp.UserDetailPage\" xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\" xmlns:local=\"using:UserDetailApp\" xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\">\n\n    <grid background=\"{ThemeResource ApplicationPageBackgroundThemeBrush}\">\n        <stackpanel margin=\"20\">\n            <image height=\"100\" width=\"100\" x:name=\"ProfilePicture\"\/>\n            <textblock fontsize=\"24\" fontweight=\"Bold\" x:name=\"UserName\"><\/textblock>\n            <textblock fontsize=\"18\" x:name=\"UserEmail\"><\/textblock>\n            <button click=\"EditButton_Click\" content=\"Edit\"><\/button>\n        <\/stackpanel>\n    <\/grid>\n<\/page>\n<\/code><\/pre>\n<h3>Step 3: Implement UserDetailPage Code Behind<\/h3>\n<pre><code>C#\nusing Windows.UI.Xaml.Controls;\n\nnamespace UserDetailApp\n{\n    public sealed partial class UserDetailPage : Page\n    {\n        public UserDetailPage()\n        {\n            this.InitializeComponent();\n            LoadUserData();\n        }\n\n        private void LoadUserData()\n        {\n            ProfilePicture.Source = new BitmapImage(new Uri(\"ms-appx:\/\/\/Assets\/profile.png\"));\n            UserName.Text = \"John Doe\";\n            UserEmail.Text = \"john@example.com\";\n        }\n\n        private void EditButton_Click(object sender, RoutedEventArgs e)\n        {\n            \/\/ Edit user details logic\n        }\n    }\n}\n<\/code><\/pre>\n<h2>Improving UserDetailPage<\/h2>\n<p>The basic UserDetailPage displays user information in a very simple way. To enhance the user experience, let&#8217;s add some new features and designs.<\/p>\n<h3>Step 1: Add Profile Image Change Feature<\/h3>\n<p>We will add a feature that allows users to change their profile image. To do this, we will use the <strong>FileOpenPicker<\/strong> class to allow users to select an image from their local files.<\/p>\n<pre><code>C#\nprivate async void EditButton_Click(object sender, RoutedEventArgs e)\n{\n    var picker = new Windows.Storage.Pickers.FileOpenPicker();\n    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;\n    picker.FileTypeFilter.Add(\".jpg\");\n    picker.FileTypeFilter.Add(\".png\");\n\n    var file = await picker.PickSingleFileAsync();\n    if (file != null)\n    {\n        var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);\n        var bitmap = new BitmapImage();\n        bitmap.SetSource(stream);\n        ProfilePicture.Source = bitmap;\n    }\n}\n<\/code><\/pre>\n<h3>Step 2: Add User Name Edit Feature<\/h3>\n<p>Let&#8217;s add a text box to allow users to edit their names. We will modify the XAML layout to include the text box.<\/p>\n<pre><code>XAML\n<textbox fontsize=\"24\" x:name=\"UserNameTextBox\"><\/textbox>\n<button click=\"SaveButton_Click\" content=\"Save\"><\/button>\n<\/code><\/pre>\n<p>Now let&#8217;s add functionality to allow users to edit their names.<\/p>\n<pre><code>C#\nprivate void SaveButton_Click(object sender, RoutedEventArgs e)\n{\n    UserName.Text = UserNameTextBox.Text;\n}\n<\/code><\/pre>\n<h2>Improving UI\/UX<\/h2>\n<h3>Step 1: Adding Styling<\/h3>\n<p>Now let&#8217;s add various styles and layouts to make the user interface (UI) look more appealing.<\/p>\n<pre><code>XAML\n<page.resources>\n    <solidcolorbrush color=\"#FF007ACC\" x:key=\"PrimaryBrush\"><\/solidcolorbrush>\n<\/page.resources>\n\n<stackpanel>\n    <textblock fontsize=\"32\" foreground=\"{StaticResource PrimaryBrush}\" text=\"User Details\"><\/textblock>\n<\/stackpanel>\n<\/code><\/pre>\n<h3>Step 2: Adding Animations<\/h3>\n<p>Adding animations to the page can make the user experience more engaging. Let\u2019s add animations in XAML.<\/p>\n<pre><code>XAML\n<visualstatemanager.visualstategroups>\n    <visualstategroup x:name=\"CommonStates\">\n        <visualstate x:name=\"Normal\"><\/visualstate>\n        <visualstate x:name=\"PointerOver\">\n            <storyboard>\n                <doubleanimation autoreverse=\"True\" duration=\"0:0:0.2\" storyboard.targetname=\"ProfilePicture\" storyboard.targetproperty=\"Opacity\" to=\"0.5\"><\/doubleanimation>\n            <\/storyboard>\n        <\/visualstate>\n    <\/visualstategroup>\n<\/visualstatemanager.visualstategroups>\n<\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>In this course, we have learned in detail how to modify the UserDetailPage view in UWP. Through the process of adding functionality to effectively manage and update user profiles, we believe you have laid the groundwork for practical application development. UWP development is a very flexible and powerful platform, making it a great way to realize your creative ideas.<\/p>\n<p>We hope that the UserDetailPage you create will provide a better experience for users, and that you will continue to add more advanced features.<\/p>\n<p>Thank you!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>UWP (Universal Windows Platform) development is a powerful platform that allows you to create applications that can run on various Windows devices. In this course, we will go into detail on how to modify the UserDetailPage view, which is part of a UWP application. Since UWP follows the MVVM (Model-View-ViewModel) architecture, we will adjust the &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37541\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;UWP Development, Modifying UserDetailPage View&#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-37541","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, Modifying UserDetailPage View - \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\/37541\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"UWP Development, Modifying UserDetailPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"UWP (Universal Windows Platform) development is a powerful platform that allows you to create applications that can run on various Windows devices. In this course, we will go into detail on how to modify the UserDetailPage view, which is part of a UWP application. Since UWP follows the MVVM (Model-View-ViewModel) architecture, we will adjust the &hellip; \ub354 \ubcf4\uae30 &quot;UWP Development, Modifying UserDetailPage View&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37541\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:58:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:02:19+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=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/37541\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37541\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"UWP Development, Modifying UserDetailPage View\",\"datePublished\":\"2024-11-01T09:58:24+00:00\",\"dateModified\":\"2024-11-01T11:02:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37541\/\"},\"wordCount\":475,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"UWP Programming\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37541\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37541\/\",\"name\":\"UWP Development, Modifying UserDetailPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:58:24+00:00\",\"dateModified\":\"2024-11-01T11:02:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37541\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37541\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37541\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"UWP Development, Modifying UserDetailPage View\"}]},{\"@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, Modifying UserDetailPage View - \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\/37541\/","og_locale":"ko_KR","og_type":"article","og_title":"UWP Development, Modifying UserDetailPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"UWP (Universal Windows Platform) development is a powerful platform that allows you to create applications that can run on various Windows devices. In this course, we will go into detail on how to modify the UserDetailPage view, which is part of a UWP application. Since UWP follows the MVVM (Model-View-ViewModel) architecture, we will adjust the &hellip; \ub354 \ubcf4\uae30 \"UWP Development, Modifying UserDetailPage View\"","og_url":"https:\/\/atmokpo.com\/w\/37541\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:58:24+00:00","article_modified_time":"2024-11-01T11:02:19+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":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/37541\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37541\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"UWP Development, Modifying UserDetailPage View","datePublished":"2024-11-01T09:58:24+00:00","dateModified":"2024-11-01T11:02:19+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37541\/"},"wordCount":475,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["UWP Programming"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37541\/","url":"https:\/\/atmokpo.com\/w\/37541\/","name":"UWP Development, Modifying UserDetailPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:58:24+00:00","dateModified":"2024-11-01T11:02:19+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37541\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37541\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37541\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"UWP Development, Modifying UserDetailPage View"}]},{"@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\/37541","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=37541"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37541\/revisions"}],"predecessor-version":[{"id":37542,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37541\/revisions\/37542"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37541"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}