I found a very usefull metro icons pack.
The picture are available in png, svg and XAML !!
http://www.bilsimser.com/wp-content/uploads/2011/01/XamlSample.zip
Enjoy !
Unfortunatly, our Windows Phone does not have so much space in the SD Card, LG has furnished 16 Gb, but generally, we have 8Gb. That is not too much, especially when we have a Zune Pass / many songs and movies...
In this case, in our applications, we must be careful with the isolatedstorage... the SD Card can be rapidelly full :s
So, thanks to the .net framework and the stream object. I developped an IsolatedStorageGZipFileStream object that can save and compress (GZip) your objects in the isolated storage.
This was pretty easy to code it. I took the GZipStream class from the .net Framework source (may be I should check the licence about it...) and I inherits from it:
public class IsolatedStorageGZipFileStream : GZipStream
{
/// <summary>
/// Initializes a new instance of the <see cref="IsolatedStorageGZipFileStream"/> class.
/// </summary>
/// <param name="path">The path.</param>
/// <param name="mode">The mode.</param>
/// <param name="access">The access.</param>
/// <param name="isf">The isf.</param>
/// <param name="compressionMode">The compression mode.</param>
public IsolatedStorageGZipFileStream(string path, FileMode mode, FileAccess access, IsolatedStorageFile isf, CompressionMode compressionMode)
: base(new IsolatedStorageFileStream(path, mode, access, isf), compressionMode)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="IsolatedStorageGZipFileStream"/> class.
/// </summary>
/// <param name="path">The path.</param>
/// <param name="mode">The mode.</param>
/// <param name="access">The access.</param>
/// <param name="share">The share.</param>
/// <param name="isf">The isf.</param>
/// <param name="compressionMode">The compression mode.</param>
public IsolatedStorageGZipFileStream(string path, FileMode mode, FileAccess access, FileShare share,
IsolatedStorageFile isf, CompressionMode compressionMode)
: base(new IsolatedStorageFileStream(path, mode, access, share, isf), compressionMode)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="IsolatedStorageGZipFileStream"/> class.
/// </summary>
/// <param name="path">The path.</param>
/// <param name="mode">The mode.</param>
/// <param name="isf">The isf.</param>
/// <param name="compressionMode">The compression mode.</param>
public IsolatedStorageGZipFileStream(string path, FileMode mode, IsolatedStorageFile isf, CompressionMode compressionMode)
: base(new IsolatedStorageFileStream(path, mode, isf), compressionMode)
{
}
}
The IsolatedStorageGZipFileStream can easily be used with the Cache object (link here) by replacing IsolatedStorageFileStream with IsolatedStorageGZipFileStream.
The complete source code is of course available: Phone7.Fx.Preview.zip (100,38 kb)
If you have feedback, you are welcome !
AS you probably know, Windows PHone Mango has IE 9 as browser. IE 9 is pretty cool, but in your code,you could be surprised... My code has different behavior using Windows Phone Nodo (IE7) and Mango (IE9) with exactly the same code and with the same version of the SDK !!!
I discovered this behavior after coding an authentication part in my next application, using the Windows Azure ACS and a sample code provided by Microsoft.
The problem is with the WebBrowser control, look at this sample :
BrowserControl.Navigated += new EventHandler<NavigationEventArgs>(BrowserControl_Navigated);
BrowserControl.NavigateToString("<html><head><title></title></head><body></body></html>");
private void BrowserControl_Navigated(object sender, NavigationEventArgs e)
{
...
In Nodo (IE7) the e.Uri is null, but in Mango (IE9), e.Uri is not null but empty !!!
So in Mango, you have to check the url like this:
string.IsNullOrEmpty(e.Uri.ToString())
So, be carreful in your code !!!