我需要能够在Windows Phone应用程序中动态创建大小为400x400的图像,该应用程序将具有用户从颜色选择器中选择的ARGB值颜色。例如,用户将单击HyperlinkButton将它们带到ColorPickerPage然后将选择一种颜色,我将检索该值并从中创建图像,并将该图像显示在MainPage上。如果我从用户那里检索到ARGB值,那么这样的事情怎么可能完成呢?我没有幸运在这个特定问题上找到任何资源。
编辑**
我遇到了http://www.geekchamp.com/forums/windows-phone-development/how-to-correctly-save-uicontrol-with-opacity-to-writeablebitmap,它在屏幕上创建了一个矩形,然后保存到WriteableBitmap,但是我怎么能跳过这一步并将Rectangle保存到WriteableBitmap?请注意,我只有一个矩形,我用自定义颜色填充。
答案 0 :(得分:0)
您是否尝试使用Drawing
类。
这里是来自msdn。{/ p>的reference
以下是一些示例:System.Drawing and System.Drawing.Imaging alternatives for Windows Phone
http://code.msdn.microsoft.com/windowsapps/Multi-Touch-Drawing-744a0b48
希望它有所帮助!
答案 1 :(得分:0)
您可以使用以下代码将任何UI元素保存为图像。这里rect
是XAML中矩形的名称。如果UI中没有矩形,则只需使用C#创建一个矩形。我添加了使用C#创建矩形的代码并对其进行了评论。
public void saveimage(int height, int width, String filename)
{
//Rectangle rect = new Rectangle();
//rect.Height = 40;
//rect.Width = 40;
//rect.Fill = new SolidColorBrush(System.Windows.Media.Colors.Cyan);
var bmp = new WriteableBitmap(width, height);
bmp.Render(rect, null);
bmp.Invalidate();
var isf = IsolatedStorageFile.GetUserStoreForApplication();
if (!isf.FileExists(filename))
{
using (var stream = isf.OpenFile(filename, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite))
{
bmp.SaveJpeg(stream, width, height, 0, 100);
stream.Close();
}
}
}