专栏首页ArcGIS JS API开发【ArcGIS Pro SDK for Microsoft .NET基础-2】开发实现登录页面

【ArcGIS Pro SDK for Microsoft .NET基础-2】开发实现登录页面

这个系列我们介绍一下ArcGIS Pro SDK for Microsoft .NET的开发,本文是此系列的第二篇文章,我们在上一节创建的demo基础上,来增加一个登录页面。

写在前面

前一篇文章介绍了ArcGIS Pro SDK for Microsoft .NET开发环境的搭建,并且在文章最后我们创建了一个demo并让它成功运行。这一篇文章我们介绍下如何在前面创建的demo基础之上增加一个登录页面。

操作步骤

1、打开上一节创建的demo代码,然后在”UI”文件夹上面鼠标右击,依次选择【添加 | 新建项】,在打开的新建项窗口选择新建一个WPF的窗口,并为其取名为”Login”,如下图所示:

2、新建Login窗口之后,我们的右侧项目代码UI目录下会出现新建的Login窗口代码文件,如下所示:

3、鼠标双击新建的Login窗口代码文件,然后在左侧的设计窗口将【工具栏】中的Label、Button、TextBox控件拖动至Login的设计器面板,最终形成如下所示的一个窗体:

4、然后鼠标依次点击此页面中的登录和取消两个按钮,在右下方的属性面板中给这两个分别设置名称,如下:

5、在设计器面板分别鼠标双击登录和取消按钮,分别为这两个按钮绑定点击事件,在这里就做一些简单的操作,点击登录按钮时不进行登录校验,只需要打开后续的面板即可,点击取消按钮时就让系统退出,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace ProConfigurationdemo2.UI
{
    /// <summary>
    /// Login.xaml 的交互逻辑
    /// </summary>
    public partial class Login : Window
    {
        public Login()
        {
            InitializeComponent();
        }
        private void login_btn_Click(object sender, RoutedEventArgs e)
        {
            //实现登录验证相关的代码
            this.DialogResult = true;
        }
        private void login_cance_btn_Click(object sender, RoutedEventArgs e)
        {
            //取消登录
            this.DialogResult = false;
        }
    }
}

6、然后在代码目录结构中双击UI目录下的SplashScreen.xaml文件,打开此页面的设计器面板,这个面板默认会展示我们的项目名称,我们在这里将展示的文字修改成我们系统的名称,如下:

7、双击代码目录中的ConfigurationManager1.cs代码文件,然后在此代码文件中新建ConfigurationManager1构造函数,并且在构造函数中实例化我们之前新建的Login面板,这样一来,我们项目启动时会首先打开新建的登录面板,然后只有我们点击登录时才会真正进入系统,如下:

using ArcGIS.Core.CIM;
using ArcGIS.Core.Data;
using ArcGIS.Core.Geometry;
using ArcGIS.Desktop.Catalog;
using ArcGIS.Desktop.Core;
using ArcGIS.Desktop.Editing;
using ArcGIS.Desktop.Extensions;
using ArcGIS.Desktop.Framework;
using ArcGIS.Desktop.Framework.Contracts;
using ArcGIS.Desktop.Framework.Dialogs;
using ArcGIS.Desktop.Framework.Threading.Tasks;
using ArcGIS.Desktop.Mapping;
using ProConfigurationdemo2.UI;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace ProConfigurationdemo2
{
    internal class ConfigurationManager1 : ConfigurationManager
    {
        public ConfigurationManager1()
        {
            //启用login页面
            //只有在调用Application对象的Shutdown方法时,应用程序才会关闭
            System.Windows.Application.Current.ShutdownMode = System.Windows.ShutdownMode.OnExplicitShutdown;
            Login login = new Login();
            if((bool)login.ShowDialog())
            {
                login.Close();
            }
            else
            {
                Environment.Exit(0);
            }
        }
        /// <summary>
        /// Replaces the default ArcGIS Pro application name
        /// </summary>
        protected override string ApplicationName
        {
            get { return "ProConfigurationdemo2"; }
        }
        /// <summary>
        /// Replaces the ArcGIS Pro Main window icon.
        /// </summary>
        protected override ImageSource Icon
        {
            get
            {
                return new BitmapImage(new Uri(@"pack://application:,,,/ProConfigurationdemo2;component/Images/favicon.ico"));
            }
        }
        #region Override Startup Page
        private StartPageViewModel _vm;
        /// <summary>
        /// Called before ArcGIS Pro starts up. Replaces the default Pro start-up page (Optional)
        /// </summary>
        /// <returns> Implemented UserControl with start-up page functionality. 
        /// Return null if a custom start-up page is not needed. Default ArcGIS Pro start-up page will be displayed.</returns>
        protected override System.Windows.FrameworkElement OnShowStartPage()
        {
            if (_vm == null)
            {
                _vm = new StartPageViewModel();
            }
            var page = new StartPage();
            page.DataContext = _vm;
            return page;
        }
        ///<summary>
        ///During the start up this method is called after it is safe to access Portal and use ArcGIS.Desktop.Core. 
        ///ArcGIS Pro Theme has already been set. 
        ///</summary>
        ///<param name="cancelEventArgs">
        ///To cancel initialization, set the cancelEventArgs.Cancel property to true.
        ///</param>
        protected override void OnApplicationInitializing(CancelEventArgs cancelEventArgs)
        {
        }
        ///<summary>
        ///During the start up this method is called after the Application Window Start page is ready. From here on calls to ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask are safe.
        ///ArcGIS Pro Extension modules can now be accessed. 
        ///</summary>
        protected override void OnApplicationReady()
        {
        }
        #endregion
        #region Override Splash screen
        /// <summary>
        /// Called while ArcGIS Pro starts up. Replaces the default Pro splash screen. (Optional)
        /// </summary>
        /// <returns>Implemented Window with splash screen functionality. 
        /// Return null if a custom splash screen is not needed. Default ArcGIS Pro splash screen will be displayed.</returns>
        protected override System.Windows.Window OnShowSplashScreen()
        {
            return new SplashScreen();
        }
        #endregion
        #region Override About page
        /// <summary>
        /// Customized UserControl is displayed in ArcGIS Pro About property page. Allows to add information about this specific managed configuration.
        /// </summary>
        /// <returns>Implemented UserControl with about box information. 
        /// Return null if a custom about box is not needed. Default ArcGIS Pro About box will be displayed.</returns>
        protected override System.Windows.FrameworkElement OnShowAboutPage()
        {
            return new AboutPage();
        }
        #endregion
    }
}

8、此时我们启动项目,发现系统首先进入登录面板,然后我们点击登录按钮时,才会出现之前我们创建的demo系统界面,如下所示:

9、至此,我们的登陆界面定制开发完成。当然,我们在此处仅仅是介绍了如何新建一个登录页面,并将其注册为系统起始页的方法,里面的逻辑代码并没有详细的编写,大家在实际项目中自己编写登录页面的逻辑代码即可。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:http://www.xbeichenbei.com/复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 【ArcGIS Pro SDK for Microsoft .NET基础-4】系统部署

    这个系列我们介绍一下ArcGIS Pro SDK for Microsoft .NET的开发,本文是此系列的第四篇文章。这篇文章我们来介绍下如何在部署机器上部署...

    X北辰北
  • 【ArcGIS Pro SDK for Microsoft .NET基础-1】环境搭建及Demo创建

    这个系列我们介绍一下ArcGIS Pro SDK for Microsoft .NET的开发,本文是此系列的第一篇文章,我们先来介绍下基础环境的搭建,并创建第一...

    X北辰北
  • 【ArcGIS Pro SDK for Microsoft .NET基础-3】系统界面布局及实例化菜单

    这个系列我们介绍一下ArcGIS Pro SDK for Microsoft .NET的开发,本文是此系列的第三篇文章,我们重新创建一个项目demo之后,进行系...

    X北辰北
  • 在 iOS 项目中使用 ESRI ArcGIS SDK

    ArcGIS SDK for iOS 是 ESRI 公司针对 iOS 平台的 GIS 解决方案, 以 iOS Framework 的形式提供, 与 iOS 自带...

    beginor
  • Arcgis Runtime sdk for android 授权

    要下载和安装 ArcGISRuntime SDK for Android,您需要注册开发者账户,进而便拥有了访问所有功能的权限,从而实现开发和测试目的。但是,这...

    水击三千
  • ArcGIS API for JavaScript开发入门必读

    ArcGIS API for JavaScript开发必读的一篇入门文档,文章中对ArcGIS API for JavaScript做了简单的介绍,包括学习路线...

    X北辰北
  • 菜鸟的 GIS 基本概念学习

    因为一些缘故,工作中了解了一下 GIS。本文算是菜鸟的学习笔记吧,如有错误,衷心希望专业的 GIS 同学指正~

    amc
  • 5分钟快速创建52ABP .NET Core Angular模板

    如果您已经购买了52ABP-PRO,那么它会提高您的开发体验和工作效率。本文档的目标是准备在5分钟内创建和运行一个52ABP-PRO项目。

    角落的白板报
  • PC(C/S架构)客户端测试笔记

    •web为B/S架构,服务端更新后,刷新一下页面就同步更新了•PC、APP为C/S架构,服务端更新后,需要对各个主流版本进行兼容测试及回归测试,客户端更新的话,...

    瓦都剋
  • 配电网WebGIS研究与开发[2]

        本次毕业设计所涉及平台有服务器和客户端两个平台、所处理的数据有地理数据和非地理数据、所涉及的编程语言主要有C#和JavaScript,都比较多样化,所以...

    用户1170933
  • GIS专辑 | 数据是GIS的血液

    本周将连载关于ArcGIS技术应用的文章。来源于我的师兄。他有丰富的工作经验。如有问题欢迎大家留言或者访问博客进行交流:https://blog.csdn.ne...

    郭好奇同学
  • 手把手教你怎么用ArcgisOnline发布地图服务

    Arcgis推出了Arcgis Online,但是大家都不知道这是个什么东西,怎么用这个东西,今天这篇文章手把手的教你如何使用Arcgisonline发布地图服...

    lzugis
  • 使用 Tye 辅助开发 k8s 应用竟如此简单(一)

    最近正巧在进行 Newbe.Claptrap 新版本的开发,其中使用到了 Tye 来辅助 k8s 应用的开发。该系列我们就来简单了解一下其用法。

    newbe36524
  • .NET 简介

    .NET 是一个免费的开源开发平台,用于构建多种应用,例如: Web 应用程序、Web API 和微服务 云中的无服务器功能 云原生应用 移动应用 桌面应用程...

    呆呆
  • Windows Identity Foundation(WIF)正式发布

    Windows 标识基础 (WIF) 是一个新的扩展到 Microsoft.net 框架,使得开发人员能够启用.net 框架应用程序中的高级的标识功能。 基于可...

    张善友
  • ASP.NET Core 实战:将 .NET Core 2.0 项目升级到 .NET Core 2.1

       最近一两个星期,加班,然后回去后弄自己的博客,把自己的电脑从 Windows 10 改到 Ubuntu 18.10 又弄回 Windows 10,原本计划...

    程序员宇说
  • ArcGis API JS 4.X本地化部署与地图的基础使用

    首先下载ArcGIS API for JavaScript4.x,这里下载的是4.19。

    Kiba518
  • 配电网WebGIS研究与开发[5]

      用VS2008打开需要发布的网页源文件,执行操作“菜单à生成à发布网站”,然后编译器会将所有的服务器端代码即“*.cs”文件编码成动态链接库即“*.dll”...

    用户1170933

扫码关注腾讯云开发者

领取腾讯云代金券