小编Mar*_*ván的帖子

从DataUrl转换为C#中的Image并写入包含字节的文件

你好,我有这样的签名:

在此输入图像描述

这个字符串专门编码到DataUrl:

"data:image/png; base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAADICAYAAADGFbfiAAAYlElEQVR4Xu2dC8w1R1nHQSCIgIKVGLmoiLciFwUs ...(long string)"

我想要做的是将此DataUrl转换为PNG图像,并将图像保存到设备,这是我到目前为止所做的:

if (newItem.FieldType == FormFieldType.Signature)
{
     if (newItem.ItemValue != null)
     {
           //string completeImageName = Auth.host + "/" + li[i];
           string path;
           string filename;
           string stringName = newItem.ItemValue;

           var base64Data = Regex.Match(stringName, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
           var binData = Convert.FromBase64String(base64Data);

           path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

           filename = Path.Combine(path, base64Data);

           if (!File.Exists(filename))
           {
                 using (var stream = new MemoryStream(binData))
                 {
//Code crashing here--------------------------
                      File.WriteAllBytes(filename, binData);
                  }
            }

        newItem.ItemValue = filename;

    }
}

         App.Database.SaveReportItem(newItem);
Run Code Online (Sandbox Code Playgroud)

但是我的代码使我的应用程序在此行中专门崩溃:

File.WriteAllBytes(filename,binData);

我用作参考(Link)的样本使用的是PictureBox,但是使用Xamarin时没有使用pictureBox.

有任何想法吗?

.net c# memorystream xamarin xamarin.forms

14
推荐指数
2
解决办法
1万
查看次数

使用stacklayout填充所有屏幕

我有一个像这样编码的stacklayout:

StackLayout mainStackLayOut = new StackLayout{
    BackgroundColor = Color.Blue,
    //VerticalOptions = LayoutOptions.FillAndExpand,
    //WidthRequest = width,
    HorizontalOptions = LayoutOptions.FillAndExpand,
    Orientation = StackOrientation.Vertical
};
Run Code Online (Sandbox Code Playgroud)

但是我希望我的stacklayout能够填满所有的屏幕宽度和高度,我也添加了这样的树形按钮:

StackLayout buttonsStackLayOut = new StackLayout
{
    BackgroundColor = Color.White,
    //VerticalOptions = LayoutOptions.Fill,
    HorizontalOptions = LayoutOptions.Fill,
    Orientation = StackOrientation.Horizontal,
    Spacing = 0
};
mainStackLayOut.Children.Add(buttonsStackLayOut);


Image doctorImage = new Image
{
    WidthRequest = width / 3,
    HeightRequest = 50,
    BackgroundColor = Color.Gray,
    Source = ImageSource.FromFile ("about.png")
};
buttonsStackLayOut.Children.Add(doctorImage);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何填写所有屏幕尺寸?

xamarin xamarin.forms

9
推荐指数
1
解决办法
1万
查看次数

List.add()异步任务等待正确的语法

您好我试图异步添加项目到列表但我不知道它是如何完成的,如果我使用的语法不正确,这就是我现在所拥有的:

我的看法:

await viewModel.getMessages();
list.ItemsSource = viewModel.Messages;
Run Code Online (Sandbox Code Playgroud)

我的视图模型:

public List<Message> Messages { get; set; }

        public async Task getMessages()
        {
            await GetRemoteMessages();
        }

        private async Task GetRemoteMessages()
        {
            var remoteClient = new ChiesiClient();
            var messages = await remoteClient.getMessages().ConfigureAwait(false);
            //App.Database.
            await SaveAll(messages).ConfigureAwait(false);
        }

        public async Task SaveAll(IEnumerable<Message> _messages)
        {
            foreach (var item in _messages)
            {
                await SaveMessage(item);
            }
        }

        public async Task SaveMessage(Message item)
        {
            await Messages.Add(new Message // Cannot await void
            {
                Title = item.Title,
                Description = item.Description,
                Date = …
Run Code Online (Sandbox Code Playgroud)

.net c# asynchronous async-await xamarin.forms

4
推荐指数
1
解决办法
8588
查看次数

为什么这个62的结果?

唯一让我想到的是,MULT((3 + 2)(5*4))= 100不是62?有人可以解释一下吗?

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#define ADD(x1, y1) x1 + y1
#define MULT(x1,y1) x1 * y1


int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,c,d,e,f,g;
    a=2;
    b=3;
    c=4;
    d=5;
    e= MULT(ADD(a,b),MULT(c,d));
    printf("the value of e is: %d\n", e);
    system("PAUSE");
}
Run Code Online (Sandbox Code Playgroud)

c c++ operators

-1
推荐指数
2
解决办法
258
查看次数