未找到

未发布 UI工具包Xamarin.Forms更新至v2.3.5-pre3,与.NET Standard项目兼容
by Harriet666 keys 分享 1497863074339
Xamarin.Forms是一个跨平台、原生支持UI的工具包,允许开发者轻松创建用户界面。这些用户界面可以通过安卓、iOS和Windows Phone共享,使用目标平台的原生控件进行渲染,让每个平台上Xamarin.Forms应用的界面外观搭配得当。
 
【Xamarin.Forms试用版点击下载】

v2.3.5-pre3更新内容

  • Xamarin.Forms现在与.NET Standard项目兼容!并非所有创建功能都能正常工作。
  • 改进:Device.RuntimePlatform现在在WinRT和UWP上返回。
  • 改进:使用新的AutomationProperties可能会影响Android上的UI测试。AutomationId、Name以及HelpText将设置本地ContentDescription属性,Name和HelpText优先于AutomationId(Name和HelpText将被连接起来)。这意味着任何正在寻找AutomationId的测试将会失败,如果Name或HelpText也设置在该元素上。要解决此问题,请更改你的UI测试并在此方案中查找Name/HelpText的值。
  • 改进:调用WinRT/UWP中Picker上的Focus将打开下拉。
  • 弃用:Android IVisualElementRenderer.ViewGroup现在已经过时了,请改用View。

试用、下载、了解更多产品信息请点击"咨询在线客服"   
7
未发布 Dynamic Web TWAIN新版预告:v13.0版本中的全新设计
by Harriet666 keys 分享 1494386157218
在过去的14年中,Dynamsoft一直在努力创新和开发Dynamic Web TWAIN SDK,并在每年都有一次重大升级。今年,v13.0版本正在路上。现在让我们来看看这次新版本将带来的好处。

v13.0版本中的新设计


在v13.0版本中,SDK的结构有了新的设计。在设计新版本时,Dynamsoft主要考虑到以下目标:
  • 应该有一个核心服务作为所有模块的中心。

  • 该服务应该设计成:

              a、它很长一段时间内只需升级一次
              b、采用自动升级的方式
  • 独立模块应能够通过核心服务相互通信

  • 独立模块应能够通过核心服务共享数据

  • 使用哪些模块应由应用程序中使用的JavaScript文件决定

  • 所有模块都应自动升级,用户无需额外的操作

  • 每个模块都能够处理自身的JavaScript请求

下图显示了在v13.0版本中Dynamic Web TWAIN的新设计:

为什么会出现这个新设计?

在过去我们收到过很多投诉,例如:
  1. 只允许拥有一个版本,换句话说,你不能同时安装两个版本。
  2. 随着每次新版本的发布,客户会发现从旧版本升级到新版本的过程很困难。尽管Dynamsoft员工一直努力让这一过程尽可能的简单,但许多客户仍然觉得升级困难。关键的原因是在使用该产品时每个桌面上都需要重新安装该服务。
  3. SDK已经非常丰富了,包括不同的模块如条形码读取器、OCR模块,网络摄像头模块等。然而,SDK的旧结构使得这些模块只能以TWAIN模块为中心,导致结果是:
         a、难以独立使用模块。
         b、由于依赖TWAIN模块,因此无法单独升级一个或两个模块。

新设计的出现可以解决三个问题:
  1. 新版本可以与旧版本一起安装、实现共存。
  2. 从这个版本开始,Dynamsoft Service将成为中心。它只处理最基本和最核心的功能,并保持稳定。因此,安装之后就可以很少或无需再升级。
  3. 所有模块的安装和未来的升级将变得“安静”。换句话说,它们不再需要执行任何安装程序。相反,一旦文件在服务器上更新(新模块以及新的JavaScript文件),Service将以静默的方式下载并安装新模块。
  4. 所有模块都可以独立使用和升级了。
Dynamic Web TWAIN v13.0预计将于2017年6月发布,敬请期待!
未发布 【教程】Edraw Max(亿图图示):怎么插入图片到思维导图中?
by Harriet666 keys 分享 1502356521857
Edraw Max(亿图图示)作为一款功能非常强大的可视化绘图软件,不仅操作简单,还具有直观、友好的绘图界面。尤其是在使用Edraw Max(亿图图示)绘制思维导图时,可以通过形象生动的画面再附上文字解释说明,能让思维导图更加的充实、易懂。
 
那么问题来了,在Edraw Max(亿图图示)思维导图中该如何导入外部图片呢?本文为大家演示详细操作步骤,一起来学习吧!目前Edraw Max(亿图图示)在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
 
Edraw Max(亿图图示)v8.7最新版下载地址>>>
 
第一步:新建“思维导图”,选择所需的模板或例子;
 
第二步:选中需要添加图片的图形,并点击“思维导图”栏上的“插入图片”,这样插入的图片就会和形状紧贴在一起;
 
第三步:选择图片,点击“打开”即可;
 
第四步:点击图片,被选中的图片四周会出现几个蓝色的小方框,只需轻轻拖动那几个小方框,就可以调整图片的大小了,如果需要等比缩放,拖住对角的四个小方框即可。

未发布 今年最新的30个Android库,你了解吗?
by Harriet666 keys 分享 1508476743851


Android开发技术越来越成熟,Android开发工具当然也层出叠现。本文就向大家介绍今年最新的深受开发者喜爱的30个Android库。希望对你的Android开发工作能起到助力。

1.MaterialStepperView

它是用Material Design实现Steppers的。
 
目前,Stepper只有垂直视图,但将来会有更多的风格。你可以尝试一下,如下图:
你可以自定义normal/active两个状态的颜色,完成图标,开启动画并设置动画时长。可通过Github上的设置项和样式查阅所有设置项。该库支持API 17+,详情请查阅wiki文档。
 

2. MultiSnapRecyclerView

这是分屏滚动的Android库。
MultiSnapRecyclerView为RecyclerView提供了分屏功能。
 
目前提供的功能有:
  • start, end和center三个位置的吸附, 
  • snap count 指定要分屏的数量, 
  • 支持水平和垂直分屏, 
  • 滚动时的回调。 


3. Garland View for Android

该库可实现如下的布局:
 
GarlandView 外部是一个水平滚动的视图,视图内的每一个子视图可垂直滚动。
你可以在README中找到其他重要信息。还有一个示例App。该库支持API 19及更高版本。


4. VegaLayoutManager

这是一个自定义的布局管理器——滚动时缩小并淡出头部。这是受到Dribble项目的启发。
 

5. ExpandableLayout

这个库的名字不言而喻,它是一个基于LinearLayout的可扩展的布局。
README里含有你启动时需要的所有信息,另外,还有一个示例App可以帮助你快速跳转到代码中。


6. SwipeBackLayout

SwipeBackLayout允许你使用手势返回上一个界面。
你可以设置滑动方向,如从左到右、从右到左、从顶部到底部、从底部到顶部。
你还可以设置是否只能从边缘滑动。

SwipeBackLayout只能包含一个子布局,例如:
  • LinearLayout,RelativeLayout,FrameLayout,TableLayout等。
  • ScrollView,HorizontalScrollView,NestedScrollView等。
  • RecyclerView,AbsListView(ListView)等子类。
  • ViewPager,WebView等。
该项目里面有一个详细说明的文档、示例APP和一个APK。


7. SmartCropper

这是一个可以智能剪裁图像的库,可以识别边框并修正裁剪后的图像,适用于身份证、名片、文件等其他图片文件的裁剪。

 
特征:
  • 以智能的方式裁剪图片,还可以识别边框;
  • 支持拖动、放大效果以提升定位体验;
  • 使用透视变换裁剪,可以修正先前裁剪的图片;
  • 支持多种UI设置,如辅助线、蒙版、设置锚点、放大等效果。
目前,此库采用优化点算法,CropImageView具有选择放大效果,而且它可以使用CropImageView XML来进行设置。


8. Date Range Picker

Date Range Picker是具有改进UI的自定义日期范围选择器。

项目的简介写得很好,易于理解。


9. StoriesProgressView

我们都知道Facebook和Instagram展现在他们App上的Stories ,这是介绍StoriesProgressView的一个库,它可以扩展LinearLayout和允许你添加以下视图。
 
该项目包含一个简短但详细的README以及示例App。


10. CosmoCalendar

这是一个可以自定义日历的库,它可以提供很多功能和UI设置,例如:
  • 改变日历方向;
  • 自定义文本颜色;
  • 设置类型和颜色;
  • 定义导航按钮等;
  • 还有很多其他功能;

 

11. Reflow Text Animator

相信大家都听过Plaid app,这是由Shazam工程团队开发的。
它是Plaid’s ReflowText的端口,无论它们的大小或风格怎样,都可以轻松地在同级的TextView之间进行转换。
这个库很容易使用,快去试试吧!
 

12. AdaptiveIconPlayground

这不是一个库,而是由Nick Butcher开发的用于试验自适应图标的AndroidApp。根据README:
此应用程序可以从已安装的App中查找支持自适应图标的App,并将其显示在网格中,然后你可以切换不同的蒙版形状以匹配不同设备的显示效果。
目前提供两种视觉效果:
  • 滚动效果;
  • 触摸时的尺寸缩放视差效果;
 

13.Tivi

Tivi是跟踪电视节目的App,它与Track.tv相连接,它的开发者是Chris Banes,虽然这项开发工作仍在进行中,但它使用的都是最前沿的组件、库和工具,其中包括Kotlin、RxJava 2、所有架构组件(Room,LiveData和Lifecycle-components)。


14.RxIdler

这是Espresso的IdlingResource
它的开发者是 Square Engineering
它支持RxJava 1 和 RxJava 2,祝你用得愉快!


15.MRichEditor

这是一个丰富的文本编辑器(基于summernote)。
它支持多种功能,包括粗体、斜体、下划线、快捷键、标题(包括六级标题)、段落、引用,有(无)序列表、代码、水平规则、链接、图像,对齐方式(居中、两端对齐、左对齐、右对齐)、下标、上标、字体名称和大小、缩进、减少缩进、撤消/还原。

在这种情况下,你需要仔细观察示例App,因为它几乎没有文档供你参考。


16.Android Clean Architecture Boilerplate

Buffer团队和Joe Birch开发的示例App展示了一种Android应用程序的干净架构。
创建此样板的原因:
实验模块化;
分享一些干净架构实现方式;
一开始采用干净架构能应对未来复杂的项目需求。
该项目的UI和单元测试都是用Kotlin编写。
它的文档里有详尽的介绍,非常适合想学习的开发者,力荐!


17.RxJava2Debug

使用过RxJava会发现有时很难读取异常,很难在Rx流中定位到问题。这就是为什么这个库被创建的原因。你可以在README中阅读更多关于的内容。
这个库的功能有:
  • 生成堆栈轨迹
  • 过滤堆栈轨迹


18. Resizer

Resizer是一个轻量级的,而且易于使用的Android库,用于图像缩放。它允许你将图像文件放大或缩小的同时,保持宽高比。
这个项目的灵感来自于Compressor。
说明书:
Minimum SDK: API 21
默认设置:
  • targetLength: 1080
  • quality: 80
  • outputFormat: JPEG
  • outputDirPath: the external files directory of your app
支持的输入格式:
  • BMP
  • GIF
  • JPEG
  • PNG
  • WEBP
支持的输出格式
  • JPEG
  • PNG
  • WEBP
支持的图像质量范围:0~100
  • 值越大,图像质量越好同时图片越大
  • PNG,无损格式,会忽略该设置


19.FaceDetector

该库允许你在相机里预览图片时,实时检测人脸。它与Fotoapparat库非常相似,但它也支持其他相机库和源。
它的使用过程十分简单,而且项目记录相当详细。
 

20.RxGps

它的开发者是Florent Champigny,它很容易找到我们各自的定位。
它兼容RxJava2,它还自动申请GPS的运行权限,并查看当下的服务是否适合您。


21. MapMe

MapMe是一个搭配地图功能使用的Android库。
MapMe将适配器模式带到Maps,简化了标记和注释的管理。
MapMe与Google Maps和Mapbox配合使用,README 里的内容很详细,而且它是用Kotlin编写的。


22. RevelyGradient

该库用于颜色渐变管理。
您可以用Java或Kotlin编写它,项目附带的说明文档很简短,但足够你能够使用它。


23. LiteUtilities

这是一个用Kotlin编写的库,它有助于从代码中消除样板。目前它的功能有:
  • RecyclerUtils—— 省去设置适配器的麻烦,现在只需4行代码就可以设置好适配器。
  • ScrollUtils—— 使用RecyclerView或NestedScrollView时,可以以轻松隐藏/滚动显示FloateActionButton。
  • ToastUtils—— 用于创建toasts。
  • SPUtils—— 用于共享选项的简单DSL。
  • ValidatorUtils—— 可以快速而轻易地进行文本检验。
  • LogUtils—— 简单易用的Android日志记录。


24.KOIN

KOIN是一个使用Kotlin来编写的依赖注入框架,它的功能是能够推动做事的进度。
据作者介绍,它
  • 没有代理/ CGLib
  • 没有代码生成
  • 没有内省
它的说明文档写得很棒,有示例和wiki,还有联系方式。


25.koptional

是那些总试图让自己的安全系统更加顺畅的Kotlin极简主义者的理想选择。
作者给出的理由是:
由于具有空值安全特性,Kotlin不需要可选值类型。但是有 RxJava2 这样的 APIs 和库不接受空值导致 Kotlin 仍然需要支持可选值类型。
大多数情况下可以使用sealed class来表示空值,然而像向 Rx 流传递String?这种情况,可选值类型是更好的选择。


26. Parallax

这是一个模拟Apple TV 视差图标的库。
它的README写得非常好,值得一试。


27.droid-vizu

Droid-vizu旨在通过轻松交换渲染器来获得酷炫效果,从而提供定制的可视化效果.
 

28.Drone

这不是Android库,而是由CésarFerreira提供的库的管理者。它是由于对java社区的嫉妒,因为他们的快速可靠的依赖管理器。因此,您只需执行以下操作:谷歌搜索一个库,检查,阅读文档等。
drone add creator/library module
例如:
drone add jakewharton/butterknife
 

29.From-design-to-Android-part2

这是一个涵盖在Android上创建整洁UI的项目。这一次,SaúlMolinero涵盖:
  • 使Alex Lockwood的ShapeShifter工具
  • AndroidVectorDrawables
  • ScaleDrawables
  • 自适应图标等。
 

30.Reagent

Reagent是Jake Wharton总结的未来响应式库的体验。
未发布 MailBee.NET Objects发送电子邮件(SMTP)教程四:发送包含文本和html的电子邮件
by Harriet666 keys 分享 1493805065916
MailBee.NET Objects介绍和试用点击查看>>>
 
在单行代码中快速发送电子邮件的最简单的方法是使用SMTP对象的QuickSend方法。在这种情况下,开发人员甚至不需要创建一个新的SMTP对象实例。只需要指定其基本属性(如From、To、Subject、Body等):
C#:
MailBee.SmtpMail.Smtp.QuickSend("from@me.com", "to@you.com", "Subject", "Message Body");         
VB.NET:
MailBee.SmtpMail.Smtp.QuickSend("from@me.com", "to@you.com", "Subject", "Message Body")
开发人员还可以使用QuickSend方法发送带有附件的电子邮件,如下所示:
C#:
MailBee.SmtpMail.Smtp.QuickSend("From Me (Company Info)",
                                "To you ",
                                "Subject", "Plain text body",
                                "HTML-formatted body",
                                null, @"C:\My Documents\report.doc");      
VB.NET:
MailBee.SmtpMail.Smtp.QuickSend("From Me (Company Info)", _
                                "To you ", _
                                "Subject", "Plain text body", _
                                "«html»HTML-formatted body«/html»", _
                                Nothing, "C:\My Documents\report.doc")
开发人员可以直接使用一个SMTP对象的实例,该实例提供了广泛的方法和属性来调整消息发送的过程。C#应用程序中的SMTP对象的新实例可以创建如下:
C#:
Smtp oMailer = new Smtp();      
VB.NET:
Dim oMailer As New Smtp()
如果SMTP服务器不需要任何身份验证,那么指定的主机名或相同的IP地址就可以连接到此SMTP服务器,如下所示:
C#:
oMailer.SmtpServers.Add("smtp.domain.com");   
VB.NET:
oMailer.SmtpServers.Add("smtp.domain.com")
或者
C#:
oMailer.SmtpServers.Add("127.0.0.1");     
VB.NET:
oMailer.SmtpServers.Add("127.0.0.1")
另一方面,如果SMTP服务器需要身份验证,开发人员应该确定该服务器上的帐户名称和相应的密码:
C#:
oMailer.SmtpServers.Add("smtp.domain.com","login","password");      
VB.NET:
oMailer.SmtpServers.Add("smtp.domain.com","login","password")
或者
C#:
oMailer.SmtpServers.Add("127.0.0.1","login","password");        
VB.NET:
oMailer.SmtpServers.Add("127.0.0.1","login","password")
然后,开发人员应确定邮件发件人的电子邮件地址,如下所示:
C#:
oMailer.From.AsString = "Dan Brown (Company Info)";         
VB.NET:
oMailer.From.AsString = "Dan Brown (Company Info)"
或者
C#:
oMailer.From.AsString = "Dan Brown ";        
VB.NET:
oMailer.From.AsString = "Dan Brown "
或者
C#:
oMailer.From.AsString = "dan@domain.com";       
VB.NET:
oMailer.From.AsString = "dan@domain.com"
添加To、Cc、Bcc或Reply-To,开发人员应使用SMTP对象的相应属性,如下所示:
C#:
oMailer.To.AsString = "Bill Smith (Remarks), Kathy@mail.com ";
oMailer.Cc.AsString = "Joe Black , Joseph ";
oMailer.Bcc.AsString = "t.jay@domain.com, s.connor@domain.com";
oMailer.ReplyTo.AsString = "john@domain.com, Barbara Jones ";      
VB.NET:
oMailer.To.AsString = "Bill Smith (Remarks), Kathy@mail.com "
oMailer.Cc.AsString = "Joe Black , Joseph "
oMailer.Bcc.AsString = "t.jay@domain.com, s.connor@domain.com"
oMailer.ReplyTo.AsString = "john@domain.com, Barbara Jones "
要指定邮件主题,开发人员应使用SMTP对象的Subject属性,如下所示:
C#:
oMailer.Subject = "Test message";         
VB.NET:
oMailer.Subject = "Test message"
此外,邮件可能没有主题。
开发人员还应该确定信息的正文。如果是纯文本,开发人员应该使用BodyPlainText属性:
C#:
oMailer.BodyPlainText = "This is a test e-mail message.";        
VB.NET:
oMailer.BodyPlainText = "This is a test e-mail message."
如果开发人员要使用HTML格式的正文,那么应该设置BodyHtmlText属性:
C#:
oMailer.BodyHtmlText = @"
Test HTML message.



        
        


        This is a test HTML mes-sage.
        


        

        www.afterlogic.com";​
VB.NET:
oMailer.BodyHtmlText = "
Test HTML message.


" & vbCrLf & _
        "" & vbCrLf & _
        "

" & vbCrLf & _
        "This is a test HTML mes-sage." & vbCrLf & _
        "

" & vbCrLf & _
        "
" & vbCrLf & _
        "www.afterlogic.com"
开发人员也可以将这两种类型同时使用。在这种情况下,邮件客户端的设置会影响显示哪个正文。
要将任何文件附加到电子邮件中,开发人员应使用AddAttachment方法,该方法只需要开发人员指定此文件的完整路径。要添加多个附件,开发人员应重复调用AddAttachment方法,如下所示:
C#:
oMailer.AddAttachment(@"C:\annual_reoprt.xls");
oMailer.AddAttachment(@"C:\deposits.doc");       
VB.NET:
oMailer.AddAttachment("C:\annual_reoprt.xls")
oMailer.AddAttachment("C:\deposits.doc")
要发送信息,开发人员应调用SMTP对象的Send方法。由于此方法可能会引发异常,开发人员可以按如下方式处理这些异常:
C#:
try
{
    oMailer.Send();
    Console.WriteLine("The message has been successfully sent.");
}
catch (MailBeeSmtpRefusedRecipientException e)
{
    Console.WriteLine("The following recipient was refused by SMTP server: " + e.RefusedRecipientEmail);
}        
VB.NET:
Try
    oMailer.Send()
    Console.WriteLine("The message has been successfully sent.")
Catch e As MailBeeSmtpRefusedRecipientException
    Console.WriteLine("The following recipient was refused by SMTP server: " + e.RefusedRecipientEmail)
End Try
示例代码:
摘要:以下示例创建一个包含纯文本和HTML格式主体的邮件,并添加.xls文档附加。然后将邮件发送给两个指定的收件人。
在使用MailBee.NET Objects之前,请确保它已解锁。
C#:
using System;
using MailBee;
using MailBee.SmtpMail;
namespace EmailApp
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            Smtp oMailer = new Smtp();
            oMailer.From.AsString = "John Doe (Company Info)";
            oMailer.To.AsString = "Bill Smith , Kathy Ritchie (Company Info)";
            oMailer.Subject = "Test e-mail";
            oMailer.BodyPlainText = "This is a test e-mail message.";
            oMailer.BodyHtmlText = @"
Test HTML message.



            
           


            This is a test HTML mes-sage.
           


           

            www.afterlogic.com";
            oMailer.AddAttachment(@"C:\annual_reoprt.xls");
            oMailer.SmtpServers.Add("127.0.0.1", "login", "password");
            oMailer.SmtpServers[0].AllowRefusedRecipients = false;
            try
            {
                oMailer.Send();
                Console.WriteLine("The message has been successfully sent.");
            }
            catch (MailBeeSmtpRefusedRecipientException e)
            {
                Console.WriteLine("The following recipient was refused by SMTP server: "+
                e.RefusedRecipientEmail);
            }
        }
    }
}
    
VB.NET:
Imports System
Imports MailBee
Imports MailBee.SmtpMail
 
Namespace EmailApp
    Class Class1
         _ 
        Shared  Sub Main(ByVal args() As String)
            Dim oMailer As New Smtp() 
 
            oMailer.From.AsString = "John Doe (Company Info)"
 
            oMailer.To.AsString = "Bill Smith , Kathy Ritchie (Company Info)"
 
            oMailer.Subject = "Test e-mail"
 
            oMailer.BodyPlainText = "This is a test e-mail message."
 
            oMailer.BodyHtmlText = "
Test HTML message.


" & vbCrLf & _
            "" & vbCrLf & _
            "

" & vbCrLf & _
            "This is a test HTML mes-sage." & vbCrLf & _
            "

" & vbCrLf & _
            "
" & vbCrLf & _
            "www.afterlogic.com"
 
            oMailer.AddAttachment("C:\annual_reoprt.xls")
 
            oMailer.SmtpServers.Add("127.0.0.1", "login", "password")
 
            oMailer.SmtpServers(0).AllowRefusedRecipients = False
 
            Try
                oMailer.Send()
                Console.WriteLine("The message has been successfully sent.")
            Catch e As MailBeeSmtpRefusedRecipientException
                Console.WriteLine("The following recipient was refused by SMTP server: "+
                e.RefusedRecipientEmail)
            End Try
        End Sub
    End Class
End Namespace
未发布 MailBee.NET Objects接收电子邮件(POP3)教程一:接收简单的电子邮件
by Harriet666 keys 分享 1497516049930
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
 
本文主要介绍了接收电子邮件(POP3)的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!

要接收简单的电子邮件,开发人员应使用POP3对象。创建此对象的新实例,如下所示:
C#:
Pop3 pop = new Pop3();
VB.NET:
Dim pop As Pop3 =  New Pop3()

基本属性和方法

要接收电子邮件,MailBee.NET Obiects与POP3服务器通信。要连接到POP3服务器,开发人员只需指定此POP3服务器的主机名(或相同的IP地址),如下所示:
C#:
pop.Connect("mail.domain.com");
VB.NET:
pop.Connect("mail.domain.com")
 
或者
C#:
pop.Connect("127.0.0.1");
VB.NET:
pop.Connect("127.0.0.1")
 
由于所有POP3服务器都需要身份验证,开发人员应指定登录邮箱的登录名和密码,如下所示:
C#:
pop.Login("login", "password");
VB.NET:
pop.Login("login", "password")
 
当开发人员成功登录邮箱时,可以通过调用POP3对象的DownloadEntireMessage方法轻松下载此邮箱包含的任何邮件。调用此方法时,开发人员应指定邮件的索引。例如,以下代码行表示从收件箱下载最后一封邮件:
C#:
MailMessage msg = pop.DownloadEntireMessage(pop.InboxMessageCount);
VB.NET:
Dim msg As MailMessage =  pop.DownloadEntireMessage(pop.InboxMessageCount)
 
其中:
  • pop.InboxMessageCount是一个属性,包含邮箱中存储的邮件总数;
  • msg是一个MailMessage对象,表示单个电子邮件。
注意!如果邮箱中没有邮件,则pop.InboxMessageCount属性为0并调用pop.DownloadEntireMessage(pop.InboxMessageCount)方法将出现错误。
 
如果要从邮箱下载中下载新邮件,开发者必须定义特殊的帮助函数。该功能应该查找已经下载邮件的现有数据库中邮件的UID。如果没有找到指定的UID,则将该邮件视为新邮件。因此,开发人员必须使用数据库引擎来存储所有接收到的邮件UID。
 
最后,当邮箱完成所有必要的操作,并且与POP3服务器的连接无效时,开发人员应该调用POP3对象的Disconnect方法以断开与POP3服务器的连接,如下所示:
C#:
pop.Disconnect();
VB.NET:
pop.Disconnect()

示例代码:

以下示例从指定的邮箱中下载最新的邮件,并显示此邮件的正文。
在使用MailBee.NET Objects之前,请确保它已解锁。
C#:
using System;
using MailBee;
using MailBee.Pop3Mail;
using MailBee.Mime;
namespace EmailApp
{
    class Class1
    {
        [STAThread]
        static bool IsNewMessage(string UID)
        {
            return true;
        }
        static void Main(string[] args)
        {
            Pop3 pop = new Pop3();
            try
            {
                pop.Connect("mail.domain.com");
                pop.Login("login", "password");
                Console.WriteLine("Successfully logged in.");
            }
            catch(MailBeePop3LoginNegativeResponseException)
            {
                Console.WriteLine("POP3 server replied with a negative response at login.");
            }
            string[] arrIDs = pop.GetMessageUids();
            int n = pop.InboxMessageCount;
            if (IsNewMessage(arrIDs[n])) 
            {
                MailMessage msg = pop.DownloadEntireMessage(n);
                if (msg.BodyHtmlText != "") 
                     Console.WriteLine(msg.BodyHtmlText);
                else 
                    if (msg.BodyPlainText != "") 
                      Console.WriteLine(msg.BodyPlainText);
                    else 
                      Console.WriteLine("The body of this message is empty.");
            }
            try
            {
                pop.Disconnect();
                Console.WriteLine("Disconnected successfully.");
            }
            catch
            {
                Console.WriteLine("Disconnection failed.");
            }
        }
    }
}
VB.NET:
Imports System
Imports MailBee
Imports MailBee.Pop3Mail
Imports MailBee.Mime
 
Namespace EmailApp
    Class Class1
        
 
        Shared Function IsNewMessage(ByVal UID As String) As Boolean
            Return True
        End Function
        Shared  Sub Main(ByVal args() As String)
            Dim pop As Pop3 =  New Pop3() 
 
            Try
                pop.Connect("mail.domain.com")
                pop.Login("login", "password")
                Console.WriteLine("Successfully logged in.")
            Catch
                Console.WriteLine("POP3 server replied with a negative response at login.")
            End Try
 
            Dim arrIDs() As String =  pop.GetMessageUids() 
            Dim n As Integer =  pop.InboxMessageCount 
            If IsNewMessage(arrIDs(n)) Then
                Dim msg As MailMessage =  pop.DownloadEntireMessage(n) 
 
                If msg.BodyHtmlText <> "" Then
                     Console.WriteLine(msg.BodyHtmlText)
                Else 
                  If msg.BodyPlainText <> "" Then
                    Console.WriteLine(msg.BodyPlainText)
                  Else 
                    Console.WriteLine("The body of this message is empty.")
                  End If
                End If
            End If
 
            Try
                pop.Disconnect()
                Console.WriteLine("Disconnected successfully.")
            Catch
                Console.WriteLine("Disconnection failed.")
            End Try
        End Sub
    End Class
End Namespace
 
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。

试用、下载、了解更多产品信息请点击"咨询在线客服"   

未发布 【FAQ合集】综合性UI组件库jQWidgets的常见问题
by Harriet666 keys 分享 1510305337237
jQWidgets是一个基于jQuery JavaScript的综合性和创新性的HTML5 UI组件库,旨在帮助开发者创建专业、跨平台的Web应用程序,并最大限度的节省开发时间。jQWidgets包含30多种UI组件,是最快的JavaScript UI框架之一。
 
jQWidgets最新版下载>>>

 

1、jQWidgets基于什么技术?

jQWidgets是一个100%纯JavaScript脚本库框架,用于创建可在任何设备上运行的现代响应式网站和移动Web应用程序。它基于流行的jQuery库。套件中的所有小部件都是基于jQWidgets核心框架从头开始构建的。该套件不依赖任何jQuery UI。 

2、我可以在AngularJS或Bootstrap中使用jQWidgets吗?

可以!jQWidgets可以与AngularJS和Bootstrap很好地集成。您可以找到多个集成示例、文档主题,我们还有Angular和jQWidgets的论坛。我们团队的首要任务是确保jQWidgets与流行的JavaScript框架(如Angular和Bootstrap)进行良好的互通。我们密切关注他们的开发和更新步伐,并及时进行jQWidgets的更新。 

3、如何获得jQWidgets许可?

jQWidgets SDK是双重许可的,您可以选择商业和非商业许可。 
 
非商业许可证 
如果您想要创建高质量的响应式网站以供个人或非盈利用途使用,您可以在Creative Commons Attribution-NonCommercial 3.0许可证下免费使用jQWidgets 。非商业许可适用于以下情况: 
- 如果您正在创建不产生收入的个人网站(包括广告收入)。
- 如果你是一个注册的非营利组织、公立学校和慈善机构。
- 如果您正在测试jQWidgets是否适合您的项目,然后再投入商业许可。
 
商业许可证 
商业许可证适用于商业或政府网站和项目或企业内联网。每个许可证包括从购买之日起一年内的产品更新和免费分发。许可证更新是可选的,只需新许可证的价格的50%。要购买商业许可证,请访问我们的许可证页面。

4、什么是商业网站?

商业网站是指产生任何类型的收入或现金流量的网站。如果您销售产品、广告、提供服务或商业业务,那么您的网站是商业的。公司网站也是商业的,即使它不出售任何东西,因为它是针对一家营利性公司。 

5、如何定义一个开发人员?

直接或间接使用jQWidgets开发应用程序、网站或其他产品的每个人都被视为开发人员。 

6、我可以用jQWidgets开发人员或企业许可证创建多少个网站或项目?

这个是不限数量的,许可证是永久的,包括免版税的分发。 

7、我需要支付你的版税吗?

jQWidgets不收取版税或SaaS费用。

8、你提供有额外的升级服务吗?

是的。请联系我们的销售团队sales@jqwidgets.com了解更多信息。 

2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

 
未发布 2D/3D文档查看器ABViewer发布v12,大大提高PDF转DWG的速度丨附下载
by Harriet666 keys 分享 1497596728894
ABViewer是一款高质量的2D/3D文档查看器,可提供专业的浏览、编辑和转换功能,支持30多种光栅和矢量图形格式,其中包括AutoCAD DWG, DXF, DWF, Hewlett-Packard HPGL, PLT, HGL, CGM, SVG, IGES/IGS, STEP/STP, STL, 3DS, TIFF, BMP, JPG, GIF等。

【ABViewer 12最新版下载>>>】
ABViewer 12支持AutoCAD®DWG 2018、PDF转DWG速度更快、DWG/DXF转G-code。
ABViewer始终与时俱进,CAD应用程序的新版本ABViewer 12主要用于DWG/DXF和其他2D和3D CAD格式,以及三个主要亮点。

导入AutoCAD®DWG 2018

无论你是在CAD行业工作还是偶尔接收CAD图纸,ABViewer 12始终能够打开所有版本的DWG文件。支持导入最新版本的绘图文件格式 - AutoCAD®DWG 2018。
9e98f9609cea49b4bd3dc4882b979993ojpg

提高PDF转DWG的速度

ABViewer 12中PDF到DWG转换速度大大加快。以前,转换大文件需要很多时间,现在你无需浪费这些时间了。一些文件的转换就在眨眼之间!
bacee89af4214eab84cf49d63cd79b65ojpg

DWG/DXF转换为G-code

许多使用数控机床的人需要从CAD文件中生成G-code。新版本的ABViewer可以实现这个目标。
你可以使用ABViewer创建铣削和切割数控机床的G代码。只需加载你的DWG或DXF文件,调整设置,ABViewer将从你的图纸中生成G-code并将其保存为NC文件格式。
0cb278f4c3bc41e19013d58abc678f9bojpg
 
未发布 矢量图形引擎库VectorDraw Developer Framework更新至v7.7012.1.1,周年8.5折限时特惠!
by Harriet666 keys 分享 1509529066316
VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。VectorDraw Developer Framework最新版点击下载>>>
 
慧都十四周年狂欢开启VectorDraw Developer Framework(VDF)8.5折冰点价,限时一个月,错过不再有,马上咨询>>>
 
VectorDraw Developer Framework(VDF)v7.7012.1.1更新内容:

WebJS

新增需求(7.7012.0.1)
  • 70001107 支持vdPolyface对象的3d形状和GradientColors
  • 70001111 获取实体边界框
新增需求(7.7012.0.3)
  • 70001119 支持vdViews
  • 70001128 WebControl中增加了两个样本
新增需求(7.7012.0.5)
  • 70001115 vdViews的新功能
  • 70001133 Esc键取消整个polyline命令
  • 70001160 3d渲染支持更多的截面剪辑
新增需求(7.7012.0.7)
  • 70001171 在所有绘图实体上绘制新的临时实体
  • 70001172 获取复制的实体
新增需求(7.7012.0.9)
  • 70001194 支持标准折线和直角的宽度
 
漏洞(7.7012.0.1)
  • 70001098 vdSelectionModified事件返回不正确的所选项目数
漏洞(7.7012.0.2)
  • 70001118 GetEntitiesFromLayer()方法中的错误
漏洞(7.7012.0.3)
  • 70001123 isCanceled在scriptCommand.select中始终返回true
漏洞(7.7012.0.4)
  • 70001127 MouseRightButton和e鼠标按钮在Web控件中不一致
漏洞(7.7012.0.9)
  • 70001198 3D视图中的鼠标位置不正确
 
通常( 7.7012.0.5)
  • 70001162 WebCad示例已添加到WebControl中
通常( 7.7012.0.7)
  • 70001179 取消动作已被双击删除
 

Converter

新增需求(7.7012.0.5)
  • 70001159 支持DWG 2018格式
 
漏洞(7.7012.0.5)
  • 70001165 错误的文本转换
漏洞(7.7012.0.9)
  • 70001195 特定的.DWG不打开
 

vdDXF

漏洞(7.7012.0.5)
  • 70001147 无法在ACAD中打开DXF
  • 70001150 DefPoint1和LinePosition在保存后交换特定径向尺寸的值
  • 70001152 DXF文件加载并保存的问题
 

Engine

新增需求(7.7012.0.1)
  • 70001096 无法选择带有窗口选择的面
  • 70001105 提升GradientColors
  • 70001106 cmdMultiline中的自我复制
新增需求(7.7012.0.4)
  • 70001144 ZoomPrevous和鼠标放大
新增需求(7.7012.0.5)
  • 70001155 启用opengl反斜杠的细线
  • 70001157 以2D线模式应用部分剪辑
新增需求(7.7012.0.7)
  • 70001176 MText改进
  • 70001185 禁用默认屏幕显示的新方法
新增需求(7.7012.0.8)
  • 70001189 相对于最后一个折线段的PolarTrack
新增需求(7.7012.0.9)
  • 70001192 使用形状编号获取SHX中形状的ShapeName
 
漏洞(7.7012.0.1)
  • 70001102 编辑文本时的EditText问题
  • 70001109 如果在没有GetGripSelection方法的情况下添加选择,则不会引发GripModified事件
  • 70001110 Mtext未正确呈现
  • 70001113 3D模式中的文本线型显示错误
漏洞(7.7012.0.2)
  • 70001114 手柄选择未正确更新,并且屏幕上仍然显示
  • 70001116 UpdatePropertiesFromPrinter丢失纸张信息
  • 70001117 实用程序GetLineTypeDlg的Wrapper不会返回正确的行类型
漏洞(7.7012.0.3)
  • 70001125 删除特定折线中的RemoveInLinePoints
  • 70001126 3DPolyline未正确导入
  • 70001137 在WPF数字键控中的控制功能可以使5位数字达到9位
  • 70001140 3D pollyine在DXF 12中无法正确保存
  • 70001141 将特定的Poly Hatches保存到DXF会导致生成无效的DXF
漏洞(7.7012.0.4)
  • 70001131 文件没有使用ocx打开
  • 70001142 线型打印出现错误的刻度
  • 70001145 vdInsert的BoundinBox不正确
漏洞(7.7012.0.5)
  • 70001151 MText对象不符合BoxWidth
  • 70001154 ActiveTextHorJustify文本命令的问题
  • 70001158 当在ATI卡中使用OpenGL设置EdgeColor时,不正确的行将被渲染
  • 70001161 vdInsert与AligneToView未正确选择
漏洞(7.7012.0.6)
  • 70001166 CmdSketch忽略MouseElevation属性
  • 70001167当活动图层冻结时,CmdDimStyleDialog预览为空
漏洞(7.7012.0.7)
  • 70001170 vdSelection选择所有的问题
  • 70001173 VDF ActiveX 64位指针问题
  • 70001175 dwg未以vds格式正确导出
  • 70001181 Mtext命令无法正常使用特定文本
  • 70001184 忽略MaxBmpMemorySize for x86应用程序
漏洞(7.7012.0.8)
  • 70001187 EMF文件在不同分辨率的PC上加载不同的绘图大小
  • 70001188 PolarTrackAngle与SnapAngle不相关
漏洞(7.7012.0.9)
  • 70001196 图像透明度在wire2dGdiPlus模式下不起作用
  • 70001199 具有自定义对象xproperties的DXF未正确保存
2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 Essential Studio for UWP发布2017 v2,新增甘特图控件
by Harriet666 keys 分享 1495780729601
Essential Studio for UWP是包含有35 +组件的综合套包,包括最快的图表和网格组件。所有组件根据当前被呈现的设备系列自适应渲染。Essential Studio for UWP发布2017 v2,新增甘特图控件。

【Essential Studio for UWP最新版点击下载>>>】


图表

区段颜色设置

图表中的每个段现已支持颜色贴图。

995952bfb60443129bd83ac458ae54f8ojpg

多个样条曲线类型

图表控件现在支持样条区域的多个样条类型。

484149a96b314a5491b95cb18957eeb9ojpg

 

图表

片段装饰

连接器中添加了一种新的装饰元素,以指示连接在另一个连接器或片段上的流动。

de1341f252e34bdabb7a48bc63b8bba0ojpg

 

PDF

增强PDF安全功能

现在支持PDF 2.0安全功能(AES Revision 6)。

77d44e0e6b76401ab02e8a510924d4e6ojpg

 

数据透视图表

快速图表类型

在透视图控件中实现了以下快速图表类型:快速列位图、快速条形图、快速行、快速位图、快速步进位图、快速分散位图和快速堆叠列位图。

修饰

添加数据透视图修饰以显示与图表细分元素相关的值。

9ffff64fc71147f4929d16d12331f483ojpg

注释

数据透视图注释显示有关绘图区域中特定目标点的图表或系列的元数据。

9137007f09c3430fad13f40e823af42bojpg

Pivot客户端

标签和值过滤器

Pivot客户端支持按标签和值进行过滤。

a1c70a38440e4827b6f7fb54f2694211ojpg

延迟更新

Pivot客户端可以仅在需要时更新,而不是在每次UI交互期间更新。

Pivot网格

Pivot行

Pivot网格可以定制为平面网格。

2f2237b52b994d8ca4fe1c9eaaf84c70ojpg

分组栏

Pivot网格提供了一个UI选项来拖动字段、过滤,并在运行时通过分组栏创建Pivot视图。

996bf06c54264a969c20b3ccf4db9af0ojpg

演示

注释功能

可以在PowerPoint演示文稿中创建和修改注释。

4773c7e27f8649bea7af50162dd246e3ojpg

富文本框

支持打印

富文本框控件现在支持从桌面和移动应用程序中打印文档内容。

a002e003c13149c6b2b951898d3207c9ojpg

页面布局

富文本框控件支持在移动设备上逐页查看文档内容。

63a5e6287a674089b4eccd746ca3434fojpg


甘特图

甘特图控件用于可视化和编辑项目进度,并跟踪项目进度。它可以帮助你组织和安排项目。你还可以通过编辑、拖动和调整大小等操作来更新项目进度。

f4eb369c934546068418ec2abec15752ojpg

主要特征

  • 任务关系
  • 交互式编辑
  • 排序
  • 自定义时间格式

树型网格

过滤

树状网格控件现在支持使用各种过滤器选项,用编程方的式过滤节点。

0d08e7d6f68d4251acd0519484bb65f4ojpg



 近期热门 - 点击最多
  1. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  2. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  3. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务
  4. 比较测试:用百度文心一言和阿里通义千问写删除文件目录并且是async/await代码
  5. node.js使用TensorFlow入门教程二:什么是张量神经网络运算与矩阵的关系及基本入门代码
  6. node.js使用TensorFlow入门教程一:简介及工作原理环境安装及初始化
  7. node.js用saml2连接Identity Provider服务器完成Azure AD/Active Directory域帐号身份认证
  8. node.js中用typescript连接mongodb数据并设置断开后自动重启连接
  9. git 将本地仓库关连并push远程
  10. 在Windows10上创建node.js开机启动脚本服务Task Scheduler failed to start: Error Value: 2147943711.

  全端社区 - 最新回复
  1. Paddle/abbyy等ocr比较:如何将图片生成可选择文字版PDF
  2. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  3. 如何用JavaScript获取某个元素copy selector的CSS选择器
  4. 青否数字人5.0上线,支持真人接管实时驱动!
  5. 遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!
  6. 比fs.watch更加优秀的Chokidar文件变化检测库
  7. HTML页面嵌入部分使用Vue3,在jQuery应用中用类似Vue2使用Vue3
  8. 克隆自己的数字人形象需要几步?
  9. Node.JS中Fetch/Axios连接Strapi服务器端localhost,Next.JS后端SSR请求返回connect ECONNREFUSED,但客户端CSR正常
  10. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA