Skip to content

wpdev

.NET / C#

Windows 10 SDK – SplitView

2015-03-03
By: Kevin Gosse
On: March 3, 2015
Tagged: C#, Windows 10, WinRT, wpdev

Another new addition to the Windows 10 SDK is the SplitView. It’s used to display a side menu, such as the one usually called “hamburger menu”. It’s quite straightforward to use. The “Pane” property contains the code of the menu itself. The page content goes into the control itself. The “OpenPaneLength” sets the width of the menu. Lastly, the “PanePlacement” property indicates on which side of the page the menu will appear (currently limited to left and right, top and bottom doesn’t seem to be supported). The menu is opened by setting the “IsPaneOpen” property to true, and closed when the property is set toRead More →

Windows 10 SDK – StateTriggers and RelativePanel

2015-03-02
By: Kevin Gosse
On: March 2, 2015
Tagged: universal apps, Windows 10, wpdev, xaml

While the Windows 10 SDK is still unavailable, and will likely remain so until the Build event in April, Microsoft allowed developers at Mobile World Congress to briefly try an early preview of the SDK. Two novelties have been publicly revealed: StateTriggers and the RelativePanel. I’ll present in this post all the information I could gather about those two features. StateTriggers Anyone who has used Visual States, be it manually or using Blend, will probably agree: the syntax is unnecessarily verbose, and having to use a storyboard to change even simple properties quickly gets tedious. The situation has been going on for a while, but with universalRead More →

Trace page views with Application Insights

2014-10-29
By: Kevin Gosse
On: October 29, 2014
Tagged: C#, wpdev

A few weeks ago, I’ve decided to test Application InsightsApplication Insights with one of my Windows Phone apps. Application Insights is a library provided by Microsoft that allows you to easily collect usage and performance traces from your app and display them on your Visual Studio Online portal. The integration in a Windows Phone app is quite easy: reference the NuGet package, and call a method in your application constructor to initialize the component: If you’re using Visual Studio 2013, you can also install the Application Insights Tools for Visual Studio extension, that will take care of those steps for you. A lot of usefulRead More →

Pushing Telerik controls a bit further: keeping the RadWindow open when navigating to another page

2014-09-12
By: Kevin Gosse
On: September 12, 2014
Tagged: .NET, C#, wpdev

The RadWindow is a nice control for Windows Phone provided by Telerik. It allows you to display a popup, along with some neat helpers, especially for the popup placement. Unfortunately, I just ran along one of the limitations of this control. My application displays a list of pictures. When tapping on a picture, I use the RadWindow to display some detailed information on the picture. In the popup, there’s also a “fullscreen” button. When pressed, the button navigates to a new page, where the user can view the picture in full screen, and zoom to his convenience. So far, so good. That’s when I noticedRead More →

Give that memory back!

2013-11-11
By: Kevin Gosse
On: November 11, 2013
Tagged: .NET, C#, wpdev

A weird behavior (one more) I noticed on Windows Phone, thanks to a question on StackOverflow (once more). First, let’s create a simple Windows Phone application. The first page will contain three buttons: the first one navigates to another page, the second one displays the amount of memory used (by calling Microsoft.Phone.Info.DeviceStatus.ApplicationCurrentMemoryUsage), and the last one will forcefully call the garbage collector, wait for the finalizers to execute, and collect the memory freed by those finalizers: In the second page, we simply create a few objects and bind them to a grid. The sole purpose is to simulate a page that would use a largeRead More →

Pushing Telerik controls a bit further: pull to refresh

2013-08-16
By: Kevin Gosse
On: August 16, 2013
Tagged: Silverlight, Telerik, wpdev

While working on a new version of my ImageBoard Browser app (warning: shameless self-placement), I decided to try and use the pull-to-refresh feature integrated to the Telerik’s RadDataBoundListBox control. The pull-to-refresh is about automatically refreshing a list when the user scrolls to its end. It’s a feature a bit lacking in terms of discoverability, and it’s therefore recommended to add a few UI hints to help the user understand he can still scroll after reaching the end of the list. However, it’s a gesture that feels great at usage, bends into the UI flow, and saves a few precious pixels of screen space. Enabling theRead More →

Storage bug in MediaLibrary.SavePicture

2013-05-26
By: Kevin Gosse
On: May 26, 2013
Tagged: .NET, C#, Windows Phone 7, Windows Phone 8, wpdev

I’ve received many reports lately of users complaining of abnormal storage usage from one of my apps, Imageboard Browser.The application was in some cases storing hundreds of megabytes! I thought at first that it was just the “other storage” issue, but I did some further investigation just in case. After some trial and error and a bit of luck, I’ve discovered that the bug lies in the methods MediaLibrary.SavePicture and MediaLibrary.SavePictureToCameraRoll. As their name indicate, they are used to save a picture to the phone’s picture hub, and they do their job pretty well. Except that ever time you use them, a copy of yourRead More →

Memory leak with BitmapImage

2013-02-17
By: Kevin Gosse
On: February 17, 2013
Tagged: .NET, C#, Memory, profiling, Silverlight, Windows Phone 7, Windows Phone 8, wpdev

There’s a memory leak that has been bothering me for a while in my Imageboard Browser app. The scenario is simple: a slideshow feature, where a new picture is loaded from an url every few seconds. After a while, the app crashes with an OutOfMemory exception. I’ve never been able to find the source of the leak, so I settled for a dirty workaround consisting in loading a fake picture in the BitmapImage instance to force it to release the memory: It fixed the issue, but I didn’t dig much further. However, over the last few weeks I’ve seen many similar leaks reported on StackOverflow,Read More →

Debugging and fixing a bug in Windows Phone sync tool

2012-12-20
By: Kevin Gosse
On: December 20, 2012
Tagged: .NET, C#, Visual Studio, Windows Phone 8

Since a few days, I had this annoying bug in the application used to sync my Windows Phone with my desktop computer: every time I tried to synchronize podcasts, the application just crashed. After a while, I decided it would be a nice debugging exercise to dig into the issue myself. First step: reproducing the issue. It was easy enough, the app automatically crashed when clicking the “Sync button”. And sure enough, this time again, it did crash: I suspected that the application was written in .NET (most Windows Phone related apps are), so I clicked on Debug and selected Visual Studio 2012. VS directlyRead More →

Programmatically terminate a Silverlight app

2012-10-31
By: Kevin Gosse
On: October 31, 2012
Tagged: .NET, C#, Silverlight, Windows Phone 8, wpdev

Exiting programmatically as always been an issue for Silverlight applications on Windows Phone 7. A few workaround existed, from throwing an exception to referencing a XNA assembly and using the ‘Game.Exit()’ method. Windows Phone 8 brings a new API, that can be used from Silverlight applications: ‘Application.Terminate()’ Using it is really straightforward: A word of advice though: calling this method will immediately kill your app. It means that the ‘Application.Closing’ event won’t be triggered, and the contents of the ‘IsolatedStorageSettings.ApplicationSettings’ dictionary won’t be automatically saved to the isolated storage. Therefore, if needed, don’t forget to save that dictionary before calling the ‘Terminate’ method:Read More →

Posts navigation

Previous 1 2 3 Next

Recent Posts

  • Uncovering a bug in Attribute.GetHashCode
  • [UWP] NavigationService with back button handler priority
  • [UWP] Bandwidth adaptive image control
  • [uwp] Animation orchestration using Caliburn.Micro coroutines
  • Should I await the last call in a method

Archives

  • March 2017 (1)
  • February 2016 (1)
  • January 2016 (1)
  • October 2015 (1)
  • September 2015 (2)
  • August 2015 (1)
  • May 2015 (1)
  • April 2015 (1)
  • March 2015 (3)
  • October 2014 (1)
  • September 2014 (1)
  • November 2013 (1)
  • August 2013 (1)
  • May 2013 (1)
  • February 2013 (1)
  • December 2012 (1)
  • October 2012 (2)
  • July 2012 (1)
  • May 2012 (1)
  • February 2012 (1)
  • January 2012 (4)

Follow me on Twitter

My Tweets

Designed using Dispatch. Powered by WordPress.