<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Edi Wang</title><description>Microsoft MVP for Azure</description><link>https://edi.wang/</link><pubDate>2026-04-04T07:46:13Z</pubDate><copyright>© 2009 - 2026 edi.wang</copyright><generator>Moonglade v15.12.0</generator><language>en-US</language><item><title>Automating Price Calculation from File Names Using PowerShell</title><link>https://edi.wang/post/2025/1/2/automating-price-calculation-from-file-names-using-powershell</link><description>Manually extracting and summing prices embedded in file names for a large number of files is time-consuming and is easy to make errors. This blog post introduces a PowerShell script designed to automate this process efficiently. The script scans a specified directory, identifies file names containing prices using a regex pattern, extracts these values, and calculates their total, making it an ideal solution for tasks like invoice management.</description><category>Windows Development</category><guid isPermaLink="false">3CC911B8-F4E2-494D-BCFD-AE2DD664BFC8</guid><pubDate>2025-01-02T08:08:35Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2025-01-02T08:08:35Z</updated></item><item><title>How to Check If .NET Core Program is Running under Remote Desktop</title><link>https://edi.wang/post/2020/2/4/how-to-check-if-net-core-program-is-running-under-remote-desktop</link><description>There are a few reasons that we need to know if our program is running under the Windows Remote Desktop (RDP) session. For example, if it is running under RDP, we may disable animation and other fancy graphics effects. But how can we detect if our program is currently under RDP? Let's see. Windows Forms If you are developing Windows Forms Apps using .NET Core 3.x, there's a built-in API that can …</description><category>Windows Development</category><category>.NET</category><guid isPermaLink="false">181C72C9-B99D-4AF6-94E5-8E697527542B</guid><pubDate>2020-02-04T13:19:14Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2020-02-04T13:19:14Z</updated></item><item><title>Upgrade WinForms Apps from .NET Core 3.0 to 3.1</title><link>https://edi.wang/post/2019/12/6/upgrade-winforms-apps-from-net-core-30-to-31</link><description>I upgraded a WinForms App to .NET Core 3.1 these days. It's an open-source on-screen ruler created by Jeff Key in 2004, the original code was for .NET Framework 2.0, I've already upgraded it to .NET Core 3.0 in September this year, it was very smooth without any code change. But this time, .NET Core 3.1 does require some code changes.   The project is on my GitHub: https://github.com/EdiWang/ …</description><category>Windows Development</category><category>.NET</category><guid isPermaLink="false">8FFF396D-307D-4946-A0F5-C4C885E37979</guid><pubDate>2019-12-06T05:37:51Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2019-12-06T05:37:51Z</updated></item><item><title>About Per Monitor-DPI aware for WinForms Applications</title><link>https://edi.wang/post/2019/7/23/about-per-monitordpi-aware-for-winforms-applications</link><description>WinForms is the traditional .NET desktop application workload running on Windows. For historical reasons, there are some problems with its support for high DPI and for different DPI screens, and this article explores the possible solutions. Windows "96" PPI history The default DPI for Windows systems (more precisely called PPI) is 96. PPI means pixel per inch, which means how many pixels are …</description><category>Windows Development</category><category>.NET</category><guid isPermaLink="false">1D421931-694D-42B3-9F9F-1603719CA1A2</guid><pubDate>2019-07-23T05:47:55Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2019-07-23T05:47:55Z</updated></item><item><title>Read and Write Windows Registry in .NET Core</title><link>https://edi.wang/post/2019/3/4/read-and-write-windows-registry-in-net-core</link><description>Yes, you read it right! It's totally possible! Even .NET Core is designed to be cross platform, but it does not mean you can not use platform specific APIs. Take Windows Registry for example, although .NET Standard can not contain Windows API like this. But there's still a way to use Windows Regisitry in .NET Core Applications. But first, you should be absolutely clear, that using platform …</description><category>Windows Development</category><category>.NET</category><guid isPermaLink="false">4F7ADDCC-D16C-49AE-BE12-1C81AA75E28A</guid><pubDate>2019-03-04T07:42:19Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2019-03-04T07:42:19Z</updated></item><item><title>How to Remove Default FDS Effects in UWP Apps</title><link>https://edi.wang/post/2018/12/31/how-to-remove-default-fds-effects-in-uwp-apps</link><description>The Fluent Design System introduced by Windows 10 from v1709 is very beautiful, the latest v1809 further refined FDS, many UWP built in controls got FDS effect by default while developers do not need to do anything. This is usually a good thing, but it can also cause performance problems for some apps. My Character Map UWP is one of the victimized apps, and let's take a look at how to remove the …</description><category>Windows Development</category><guid isPermaLink="false">A09E5F7F-3DD6-4233-AD60-84A945936709</guid><pubDate>2018-12-31T13:02:55Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-12-31T13:02:55Z</updated></item><item><title>Automate Windows 10 Developer Machine Setup</title><link>https://edi.wang/post/2018/12/21/automate-windows-10-developer-machine-setup</link><description>One of the things programmers hate most is probably setup a computer. Because the programmer's computer environment configuration is very different from normal people. In general, it takes several hours to manually install a new development machine. Let this process automating, after all, the essence of programming is to let complex things simplify, find a way to be lazy! In fact, automatic …</description><category>Windows Development</category><guid isPermaLink="false">7117DA78-F826-4FD0-913B-8644DBC42250</guid><pubDate>2018-12-21T13:12:23Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-12-21T13:12:23Z</updated></item><item><title>Build a Pixel Ruler with UWP</title><link>https://edi.wang/post/2018/11/5/build-pixel-ruler-uwp</link><description>In certain applications, we may need an on-screen ruler that indicates pixels on the screen. However, the only built-in ruler in UWP is within the InkToolbar control, we are not able to use it elsewhere. So, I will teach you how to build a pixel ruler which can be used anywhere in your UWP applications.

The Demo App
Create a new blank UWP application called PixelRulerUwp with minimal runtime …</description><category>Windows Development</category><guid isPermaLink="false">6BA0CCEA-B3A2-47EE-8302-CE991B2BB665</guid><pubDate>2018-11-05T02:59:30Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-11-05T02:59:30Z</updated></item><item><title>Fix AcrylicBrush Missing on NavigationView in Windows 10 SDK 17763</title><link>https://edi.wang/post/2018/10/9/fix-acrylicbrush-missing-navigationview-windows-10-17763</link><description>Microsoft released a new version of Windows 10 UWP SDK Build 17763, you can check the What's New document for more details. But when I retarget my App to version 17763, something unexpected happens, the AcrylicBrush gone missing if I change my App runtime to version 17763. I am not sure if this is by design on 17763 or it is a bug, I am trying to contact Microsoft product group on this problem. …</description><category>Windows Development</category><guid isPermaLink="false">7CB71439-9E3A-4E09-99F3-0C68F59C73D6</guid><pubDate>2018-10-09T13:53:14Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-10-09T13:53:14Z</updated></item><item><title>How to Fix Extended TitleBar Overlapping NavigationView PaneToggleButton</title><link>https://edi.wang/post/2018/7/31/fix-titlebar-overlapping-navigationview-pane-toggle-button</link><description>In UWP Apps, we some times extend our main view into title bar to get rid of Windows 10 default title bar. However if you are using NavigationView under extended title bar, you will find your PaneToggleButton overlapped by the title bar. And the user won't be able to click on the upper part of the button because it is where the title bar need to respond to window drag actions. This image shows …</description><category>Windows Development</category><guid isPermaLink="false">44AFEB2A-CA42-44AD-A453-8DA04FA381F3</guid><pubDate>2018-07-31T05:33:00Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-07-31T05:33:00Z</updated></item><item><title>Windows Community Toolkit: Use CameraPreview to Take Photos</title><link>https://edi.wang/post/2018/7/22/uwp-camerapreview-take-photo</link><description>In UWP Apps, if we want to use the device's camera to take photos and save to a file, it is used to be some how complicated, the developer need to know about quite a lot things and also write quite a few code to get it down (As you can find the Camera examples from Microsoft offical sample code). In fact, in many cases, we just want to take a photo by the most easy and default options via the …</description><category>Windows Development</category><guid isPermaLink="false">2594EBA1-DEAA-4B22-B97F-8F6B22768DA3</guid><pubDate>2018-07-22T08:33:49Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-07-22T08:33:49Z</updated></item><item><title>Read System Certificates in UWP</title><link>https://edi.wang/post/2018/7/2/read-cert-uwp</link><description>In Windows, we can view and manage the certificates using certmgr.msc, which is a system management console included in Windows itself. 

However, what if we want to view the certificates information in an UWP app? Here is the answer.
First thing first, the method I use does not apply to UWP only. In fact it is from a WPF app I wrote. As Microsoft released .NET Standard 2.0, which allows me to …</description><category>Windows Development</category><guid isPermaLink="false">776AEAF9-A339-40A4-AAC9-B9627FA5E477</guid><pubDate>2018-07-02T04:42:16Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-07-02T04:42:16Z</updated></item><item><title>Send Feedback in UWP Apps by Windows 10 Feedback Hub</title><link>https://edi.wang/post/2018/4/19/send-feedback-uwp</link><description>After our app has been put on Microsoft Store, there are a lot of ways to get users to send feedback, such as email, store reviews, or even write our own API collect feedback. But in fact, Windows 10 Feedback Hub can also be used to send feedbacks for our own Apps. Those who are familiar with Windows Insider know that when Windows 10 is installed, the system has a Feedback Hub, which is usually …</description><category>Windows Development</category><guid isPermaLink="false">1017E5FD-C218-4B13-89B5-8792A9402269</guid><pubDate>2018-04-19T06:35:50Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-04-19T06:35:50Z</updated></item><item><title>Customize Acrylic Brush in UWP Applications</title><link>https://edi.wang/post/2018/3/29/customize-acrylic-uwp</link><description>Windows 10 Fall Creators Update (Build 16299) added acrylic brush, this is a UI brush that similar to Windows 7 Aero effect.  A lot in box Windows Apps, such as Calculator are updated with the acrylic brush. However, the built in brushes will not always meet our own requirments. Especially when Windows automatically disable render of acrylic, such as low power mode, or with an inactive window, it …</description><category>Windows Development</category><guid isPermaLink="false">9B473458-F402-4FE1-BDC5-8449786C6361</guid><pubDate>2018-03-29T12:43:11Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-03-29T12:43:11Z</updated></item><item><title>Apply Keyboard Short Cuts in UWP</title><link>https://edi.wang/post/2018/1/24/uwp-keyboard-events</link><description>A greate Windows App requires not only mouse and touch screen friendly, but also need to think about keyboards. Especially for some common short cuts, like Undo (CTRL + Z). So that the App can provide better user experience.  So how can we define short cut keys in UWP? Take my App Tracing as example, I need to implement short cuts for Undo (CTRL + Z). First, we need to consider which Control is …</description><category>Windows Development</category><guid isPermaLink="false">8F6C0591-402A-40B9-8EA9-6FAF5FB722B8</guid><pubDate>2018-01-24T05:11:02Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-01-24T05:11:02Z</updated></item><item><title>Show Confirm Dialog When User Close UWP App</title><link>https://edi.wang/post/2017/12/29/show-confirm-dialog-close-uwp</link><description>When our UWP Application deal with user data in it, e.g. like drawings or documents, we usually want to make sure user won't close the App by accident and lose their work. Just like what you see in a Office application, it will ask you if you want to save your document before close the App. For a long time, UWP could not do that in a normal way. Because it is not a general public API and it is …</description><category>Windows Development</category><guid isPermaLink="false">5D1AF670-58C1-49F2-A123-B0249F17BA8F</guid><pubDate>2017-12-29T04:09:16Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2017-12-29T04:09:16Z</updated></item><item><title>Automatically Set Text Color on Accent Background in UWP</title><link>https://edi.wang/post/2017/10/17/automatically-set-text-color-on-accent-background-in-uwp</link><description>Windows 10 allows users to set accent color for the system, and in UWP apps, we usually honor those settings by using XAML pre-defined resource keys like {ThemeResource SystemControlBackgroundAccentBrush}.

But regardless of how the user set default app mode to dark or light, when we apply text on accent colors, it may have some problems.
For example, when the App is in light mode, the default …</description><category>Windows Development</category><guid isPermaLink="false">ABC6C12F-CC79-4D7C-B231-7FC28FB1457D</guid><pubDate>2017-10-17T09:15:30Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2017-10-17T09:15:30Z</updated></item><item><title>Configure VSTS Build for UWP Apps</title><link>https://edi.wang/post/2017/10/6/configure-vsts-build-for-uwp-apps</link><description>UWP Apps usually require a lot of time to compile a "release" package for submitting to Windows Store, and if you are working in a team, TFS/VSTS can help your team ensure that each check-in has a success build, and make it easier for deployment and testing. Let's see a basic example of how to setup a CI build for a UWP App on VSTS.  Important Pre-condition: Before you do that, please ensure that …</description><category>Windows Development</category><category>DevOps</category><guid isPermaLink="false">A25F50C1-0DE1-40FA-B323-BD6F1C918778</guid><pubDate>2017-10-06T02:41:23Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2017-10-06T02:41:23Z</updated></item><item><title>Windows 10 UWP: Switching Languages in Your App</title><link>https://edi.wang/post/2017/9/9/windows-10-uwp-switching-language</link><description>By default, a UWP App's UI language is automatically fits the system current language settings. However, what if the user need the ability to set a particular UI language just for your App without having to change system language? In my App, I supports Simplified Chinese and English. The user can override the system language in App's settings page:  So how to do it? First, you need to have …</description><category>Windows Development</category><guid isPermaLink="false">D5C25692-16A5-4FF3-9D11-9FC59AB351AF</guid><pubDate>2017-09-09T03:17:47Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2017-09-09T03:17:47Z</updated></item><item><title>Windows 10 UWP: How to Read and Save Settings Easily</title><link>https://edi.wang/post/2017/9/8/uwp-read-write-settings</link><description>In the UWP Application model, reading and saving settings are very similar to WinRT API. The class we are using is ApplicationData.Current.LocalSettings It is using key-value-pair to store settings. LocalSettings will stay on the user's current computer, and not being synced with thier Microsoft account. The API to save settings is: LocalSettings.Values[key] = value; To read settings:  if ( …</description><category>Windows Development</category><guid isPermaLink="false">AC5E9377-E797-4557-9E70-DA073AD4BE73</guid><pubDate>2017-09-08T02:33:12Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2017-09-08T02:33:12Z</updated></item></channel></rss>