If you’re presenting content to the user with a
WebBrowser control, but it’s not meant to be interacted with, then you will probably want to disable touch input to prevent the user from scrolling or zooming. Although setting
False can give you want you want, it’s also likely to mess with the appearance (a grey overlay). So, to work round this, use CSS in the source HTML like so:
overflow: hidden; /* Disable scrolling */
-ms-content-zooming: none; /* Disable zooming */
Today sees the launch of the Xbox One around the world, which is another great landmark in my career. There’s plenty written about the road from Xbox 360 to Xbox One and there are plenty of reviews for you to read (my favourite is the Polygon review, which looks amazing in addition to being balanced, honest, and accurate), so I won’t jabber on about it for long. However, Xbox One brings to the living room not just gaming, but entertainment in general with HDMI pass-through for watching your TV through your Xbox, the amazing Skype client, and much more.
After a successful time with the Skype for Windows Phone team launching Skype on Windows Phone 8, I am totally stoked to be part of the team that has launch Skype for Xbox One and to be part of the launch of Xbox One in general and I’m really proud to have the “One Launch Team 2013″ watermark on my Xbox Live profile (which you can see in the image above). I think we’ve got an excellent launch product that the whole team are really proud of. As always, there’s plenty more to come!
We’d love to hear your thoughts and experiences over on the Skype Community.
P.S. If you want to see how cool Autozoom on Skype for Xbox One is, check out this video.
When you’re developing Windows Phone apps using the Microsoft Advertising SDK, you may not see any ads when you were expecting to. This is likely to be accompanied by the following message in the Output window in Visual Studio:
An exception of type 'Microsoft.Advertising.Shared.AdException' occurred in Microsoft.Advertising.Mobile.DLL and wasn't handled before a managed/native boundary.
There’s a couple of things to check here:
- Make sure you have ID_CAP_PHONE_DIALER in your capabilities (I have no idea why the Ad SDK needs the capability!).
- If you’re running in the emulator and using actual Application and Ad Unit Ids, you won’t see any ads. You should use “test_client” and “Image480_80″ for testing (NOTE: the casing is important).
- If all else fails, add an event handler for the ErrorOccurred event on the AdControl to see what’s happening:
var ads = new AdControl;
ads.ErrorOccurred += (o, e) =>
I’m sure this is fairly well covered elsewhere, so it’s more of a “note-to-self”.
The last time I wrote about New Challenges I’d been at Pixel Lab for 15 months. Well, it seems that 15 months is my new standard job duration because 15 months after starting at Microsoft working on Skype for Windows Phone, I’ve moved on again.
During my time on the Skype for Windows Phone I’ve worked on the initial release for Windows Phone 8 including background chat and calling and the numerous releases since then. We switched to a much shorter release cadence and have only skipped one release since. The app has gone from strength-to-strength including the significantly improved resume performance, much more reliable push (which I spent a lot of time working on) and there is much more greatness to come. The agile nature that the team works makes it hard to put your finger on individual things in the app that you have been responsible for, but needless to say, I’ve fixed a lot of bugs and been involved at all levels on the app. My most externally obvious contribution won’t be seen for another release yet, but I’m proud of what I’ve achieved and hope that users like it, too.
In December I was fortunate enough to take on a Senior Development Lead role within the team and was line manager for just over half of the development team. It’s been an honour and a privilege to work with them and the wider team and I wish them all the best for the future. Although I’m not actively working on the team any more, I am still a passionate Windows Phone user and will be keeping a close eye on the progress of the Skype app and the platform.
Yesterday was my last day on the Windows Phone team and today is my first day on the Skype for Xbox One team. I’ve actually been sat amongst the team since my return to the UK, but have had very little opportunity to participate, but now there’s no holding me back I’ve got a console, a controller, and a screen on my desk and the source code on my laptop. The release is fast approaching and I’m really excited to be part of the team responsible for putting Skype on the best console!
When you’re using the PhotoChooserTask to get the user to select or take a photo you may have experienced the problem when the user is connected to Zune because this prevents them from accessing their media library. Unfortunately, from a development point of view, the Complete event that fires simply provides Cancel as the Result, which is the same result for when the user simply presses the back button.
I’ve seen a few solutions to this problem; one was a timer based hack, one was a complicated solution regarding checking network interface types, and yet another tried to access the MediaLibrary and trap the resulting exception. I think these are relatively old solutions (taking into account that Windows Phone isn’t much over a year old!) and I flat out refused to use the timing hack, the network interface type solution didn’t work because it relied on reporting Ethernet when connected but I was getting None, and the final solution failed to throw the expected exception!
Fortunately, after some more investigation I stumbled across the solution. Not only does the Complete event give a result of Cancel, but the Error property is an InvalidOperationException, which gave me the following solution:
private void PhotoChooser_Complete(object sender, PhotoResult e)
if ((TaskResult.Cancel == e.TaskResult) &&
(e.Error is InvalidOperationException))
// Zune software connected.
"Your phone is connected to the Zune software and cannot select a photo. Close the Zune software or disconnect your phone and try again.",
else if (TaskResult.OK == e.TaskResult)
// Carry on as usual.
NOTE: I actually use a toast-style notification here instead of a message box, but that’s a whole other post
I’ve been working for Pixel Lab for the last 15 months as a full-time employee and a while before that as a contractor and it’s been an absolutely crazy and amazing time. I’ve worked on some great projects including the Halo Silverlight website back when Halo: Reach was released (not the current one), the Silverlight JetPack theme, and the Windows Phone 7 templates for SketchFlow. I started working on Windows Phone projects before the devices were physically available and have been privileged to work on apps such as RunKeeper, Guardly, and another as yet unannounced app.
Robby and the rest of the team at Pixel Lab have been absolutely amazing to work with and my time at Pixel Lab has definitely been the highlight of my career so far. In all honesty, I thought I was staying there for good, however, sometimes in life opportunities arise that you simply can’t turn down, which is where I find myself right now. On Saturday myself and my family moved to Stockholm in Sweden and today I took up the position of Senior Software Development Engineer on the Windows Phone team at Skype!
I’m extremely passionate about user experiences and the Windows Phone platform and so I’m really excited about this opportunity and contributing to such a widely used app on such a great platform.
When branding an application you often want to enforce a specific theme (trying to fit in with light and dark themes often doesn’t work with many brands), then I would definitely reccomend using the ThemeManager by Jeff Wilcox. With one line of code you can enforce either the light or dark theme, and then just apply your own custom backgrounds, etc. With one extra line of code you can also change the accent color to a specific color (if you use the latest from NuGet).
However, the purpose of this blog post was not to highlight Jeff’s great work (though that’s a handy side effect), but to highlight a problem with the light theme. If you try to set the System Tray
ForegroundColor property to White this won’t work; under the light theme you’ll be left with a black-on-black system tray.
If you look closely at the documentation for the
SystemTray.ForegroundColor property, in the Remarks section it states:
You cannot set the foreground to white. Use a color close to white instead.
So, if you use a color such as
#EFFFFFFF you will the desired effect that is almost indistinguishable from an actual white-on-black system tray.
I blogged a while back about using the new Segoe UI Symbol font to create high quality scalable application bar icons. Well, to add to that, Entypo is an OpenType font containing over 100 handcrafted pictograms that will work well for the same thing. An EPS vector file is also available in case you want to convert them to a different format for use as Windows Phone application bar button icons (for example).
It’s available for free (including commercial use) under the Creative Commons Attribution-Sharealike license, though the author, Daniel Bruce is open to donations.
There are plenty of posts around on how to actually install the Windows 8 consumer Preview, so I’m not going to both covering that right now, but there were a couple of really useful resources that I wanted to highlight.
First up is some great design resources for designing the user experience for Metro style apps: http://design.windows.com. This includes:
- Guidance on how to implement common design patterns in Metro style apps for navigation, commanding and touch interaction.
- PhotoShop design assets for common controls and layouts.
- Detailed UX guidelines.
- Guidance for assessing usability.
Go forth and enjoy!