Phoney Windows Phone 7 Project Now Available!
Url: http://phoney.codeplex.com/
UPDATE: Phoney now has a NuGet package. Search on NuGet to add Phoney to your project!
I started this project when I found I had a number of small classes that I'd built for my Windows Phone 7 application so I thought it was time to share. here is the information on the new library.
It is currently in a very early Alpha stage, but I expect to have it at a release version by MIX 11 (Mid-April). Let me know what you think!
Project Description
This is a project that contains several classes and controls for use with Windows Phone 7 applications. There are plans for:
- Standard Set of Converters
- Several Controls
- BitlyHelper
- TwitterHelper
- PhoneLogger
- ObservableObject
- FadingMessage class
Exposing all the Phone Resources (e.g. PhoneTextSizeLarge) as staticly typed accessors
Current Version is 0.1.
Only the following features are included:
- BitlyHelper
- PhoneLogger
- FadingMessage
- ObservableObject
- Phone Resources
Examples:
BitlyHelper class
Simple class for shortening URI's using your own Bit.ly API Key/username:
BitlyHelper.SetCredentials("MYBITLYAPIKEY", "MYBITLYUSERNAME");
BitlyHelper.Shorten("http://phoney.codeplex.com", (result, error) =>
{
if (error != null)
{
MessageBox.Show(string.Concat("Error Shortening Url: ",
error.Message));
}
else
{
MessageBox.Show(result, 3000);
}
});
FadingMessage class
This class is to create messages that show up as a popup that fades in and fades out. For simple messages:
FadingMessage.ShowTextMessage("Saved...");
You can control the look and contents of the message by supplying your own UI objects:
FadingMessage msg = new FadingMessage()
{
MessageToShow = theMessage,
VerticalAlignment = VerticalAlignment.Top,
HorizontalAlignment = HorizontalAlignment.Right
};
msg.Show(3000); // 3 seconds
PhoneLogger class
This class is to save a simple log file in Isolated Storage and can retrieve the contents of the log on demand:
PhoneLogger.LogError("Test Logging Message");
var log = PhoneLogger.LogContents;
ObservableObject class
This is an abstract class that supports the INotifyPropertyChanged interface for ease of hand-building objects that need observation.
public class MyObject : ObservableObject
{
}
Phone Resources
All of the known phone resources have accessors to give you strongly-typed access to the phone-based resources. Static Classes include:
- PhoneColors
- PhoneBrushes
- PhoneFontSizes
- PhoneFontFamilies
- PhoneTextStyles
- PhoneThicknesses
var theContainer = new Border()
{
Background = PhoneBrushes.PhoneContrastBackgroundBrush,
BorderBrush = PhoneBrushes.PhoneBorderBrush,
BorderThickness = PhoneThicknesses.PhoneBorderThickness,
CornerRadius = new CornerRadius(5)
};
theContainer.Child = new TextBlock()
{
Margin = PhoneThicknesses.PhoneMargin,
TextWrapping = TextWrapping.Wrap,
Style = PhoneTextStyles.PhoneTextNormalStyle,
Foreground = PhoneBrushes.PhoneAccentBrush,
Text = message
};
In addition a PhoneTheme class that gives you a simple way to test for which theme (light or dark) the phone is using:
if (PhoneTheme.IsDarkTheme)
{
// Change something because it's dark
}
else
{
// Change it because it's light
}
What do you think?
Based on a work at wildermuth.com.





First few times I saw the name I dismissed it and moved on. Only after seeing a review article did I eventually wander over adn glad I did.
Quick, simple and to the point, like an entire extension library for the phone dev tool set.
Other Point, NuGet will only be useful for full VS owners since it's not available for C# express (only Web Express)