返回首页

您好,

我新的WPF和C#。我想在运行时创建一个按钮,改变它的名字,然后,当我关闭的应用程序,它应该被保存,当我重新加载应用程序的按钮应该有。

在运行时创建的按钮很容易,但要找到保存的地方创建的按钮,可以是便携式(可重复使用,如果重新安装应用程序)不是最好的办法。我读过有关My.Settings进行,XAML作家,独立的存储,使用数据库,注册表等和诚实,我迷路了。

这是最佳的解决方案,以及如何实现呢?

谢谢。

回答

评论会员:游客 时间:2012/02/07
BobJanova:我想分开的信息,这实际上是有关你要保存(在这种情况下,一些对象的名称)和UI(XAML中已经有该按钮)。保存在你喜欢的任何存储设备的型号信息(对象名,名单的事情,所以,很难有具体的不知道该软件是什么)(纯文本文件,XML文件,数据库,无论是比较合适的)。编辑:那么当你加载的应用程序,建立正常的用户界面,然后你装回模型信息的基础上更新:克特林Serafimescu:你有两个解决方案:1。动态创建应用程序的布局,从外部XAML加载。添加"按钮,覆盖的XAML。可能这是最简单的方法。保存一些新的控件(大小,位置,家长等)。你创造的地方的信息。在运行时加载父母的信息,搜索和添加新的控件。可能更复杂,因为视觉/逻辑树在WPF中(S):阿图罗・内斯特
如果有用,这里是一些示例代码,添加奔跑从字符串动态创建一个TextBlock:
Inlines.Clear();

Text = null;

 

if (value == null) return;

StringBuilder SB = new StringBuilder();

 

SB.Append("<TextBlock xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">");

SB.Append(value.ToString().Replace("\r\n", "<LineBreak/>"));

SB.Append("</TextBlock>");

 

var TB =

  XamlReader.Load(new System.Xml.XmlTextReader(

    new System.IO.StringReader(SB.ToString()))) as TextBlock;

var Lista = TB.Inlines.ToArray();

 

foreach (var item in Lista)

{

  this.Inlines.Add(item);

}
评论会员:梅迪吴拉姆 时间:2012/02/07
你好,

首先声明一个StringBuilder的变量。附加任何你想要发送在stringbuilder.make一个功能的sendmail与4个这样的参数

{C}然后得到所有正确的信息服务器,使用以下功能来发送邮件,只需复制并粘贴它会奏效。

public bool SendMailBySmtp(string from, string to, string subject, string body)

    {

        try

        {

            // Instantiate a new instance of MailMessage

            MailMessage ObjMailMessage = new MailMessage();

 

            // Set the sender address of the mail message

            ObjMailMessage.From = new MailAddress(from);

 

            // Set the recepient address of the mail message

            ObjMailMessage.To.Add(new MailAddress(to));

 

            // Set the subject of the mail message

            ObjMailMessage.Subject = subject;

            // Set the body of the mail message

            ObjMailMessage.Body = body;

 

            // Set the format of the mail message body as HTML

            ObjMailMessage.IsBodyHtml = true;

 

            // Set the priority of the mail message to normal

            ObjMailMessage.Priority = MailPriority.Normal;

 

            // Instantiate a new instance of SmtpClient           

            SmtpClient ObjSmtpClient = new SmtpClient(str_ServerDetails);

            ObjSmtpClient.Port = 25;

            

            //ObjSmtpClient.Credentials = CredentialCache.DefaultCredentials;



            if (!String.IsNullOrEmpty(str_UserName))

            {

                NetworkCredential ObjNC = new NetworkCredential(str_UserName, str_Password);

                ObjSmtpClient.Credentials = ObjNC;

            }

            else

            {

                ObjSmtpClient.Credentials = CredentialCache.DefaultNetworkCredentials;

            }

 

            // Send the mail message

            ObjSmtpClient.Send(ObjMailMessage);

            return true;

        }

        catch (SmtpException ex)

        {

            //HandelError ObjhandleError = new HandelError();

            //ObjhandleError.ManageError(ex.Message, "SendMailClass.sendMailbySMTP()");

            //return false;

        }

        catch (FormatException ex)

        {

            //HandelError ObjhandleError = new HandelError();

            //ObjhandleError.ManageError(ex.Message, "SendMailClass.sendMailbySMTP()");

            //return false;

        }

        catch (ArgumentException ex)

        {

            //HandelError ObjhandleError = new HandelError();

            //ObjhandleError.ManageError(ex.Message, "SendMailClass.sendMailbySMTP()");

            //return false;

        }

 

        catch (InvalidOperationException ex)

        {

            //HandelError ObjhandleError = new HandelError();

            //ObjhandleError.ManageError(ex.Message, "SendMailClass.sendMailbySMTP()");

            //return false;

        }

        catch (System.Security.SecurityException ex)

        {

            //HandelError ObjhandleError = new HandelError();

            //ObjhandleError.ManageError(ex.Message, "SendMailClass.sendMailbySMTP()");

            //return false;

        }

        catch (ConfigurationErrorsException ex)// IN CASE OF SHARED HOSTING

        {

            //HandelError ObjhandleError = new HandelError();

            //ObjhandleError.ManageError(ex.Message, "SendMailClass.sendMailbySMTP()");

            //return false;

        }

 

        return false;

    }

通过正确的参数功能