当前位置: 首页 > news >正文

福建省建设人才与科技发展中心网站首页品牌策划 品牌年度服务

福建省建设人才与科技发展中心网站首页,品牌策划 品牌年度服务,新网站建设方案ppt,中国建筑有限公司官网项目背景公司业务历史悠久且复杂#xff0c;数据库的表更是多而繁杂#xff0c;每次基于老业务做功能开发都需要去翻以前的表和业务代码。需要理解旧的表的用途以及包含的字段的含义#xff0c;表少还好说#xff0c;但是表一多这就很浪费时间#xff0c;而且留下来的文档… 项目背景公司业务历史悠久且复杂数据库的表更是多而繁杂每次基于老业务做功能开发都需要去翻以前的表和业务代码。需要理解旧的表的用途以及包含的字段的含义表少还好说但是表一多这就很浪费时间而且留下来的文档都是残缺不全每次查一些表的含义都要捯饬很久。在网上搜索关于数据库文档管理工具搜到最多的就是Screw和DBCHM一个是基于Java的工具、另一个则是bug很多表一多就一直转圈圈进不去。所以自己就动手开发了这款SmartSQL的工具。它是一款基于.Net 4.6.1、WPF开发的一款数据库文档管理不仅支持多种数据库(SQLServer、MySQL、PostgreSQL、SQLite)表、视图、存储过程的查询管理还支持对其进行导出成离线文档支持的文档包括CHM、Word、Excel、PDF、HTML、Xml、Json、MarkDown等多种格式。现在将它开源分享出来供更多的小伙伴使用和参考学习文末附开源地址。技术栈.Net 4.6.1WPFHandyControlSqlSugarAvalonEditSharpVectorsHandyControl是一款非常优秀的WPF框架做出来的页面都很漂亮所以我们选择使用它。Nuget中引用HandyControl一.菜单栏然后我们要实现一个基于WPF边框上的菜单栏刚好HandyControl中有这么一个菜单栏的控件,下面就是实现菜单栏的方法hc:GlowWindow.NonClientAreaContentStackPanel Height29 Margin25,0,0,0Menu HorizontalAlignmentLeftMenuItemx:NameSwitchMenuCursorHandFontWeightBoldForeground{DynamicResource DarkPrimaryBrush}Header选择连接MenuItem.IconPathData{StaticResource DownGeometry}Fill{DynamicResource DarkPrimaryBrush}StretchUniform //MenuItem.IconMenuItem.ItemTemplateHierarchicalDataTemplateMenuItemWidth160Margin0Padding0HorizontalAlignmentLeftVerticalAlignmentStretchClickSwitchMenu_ClickCursorHandFontWeightNormalHeader{Binding ConnectName}MenuItem.Iconsvgc:SvgViewboxWidth16Height16HorizontalAlignmentLeftIsHitTestVisibleFalseSource{Binding Icon} //MenuItem.Icon/MenuItem/HierarchicalDataTemplate/MenuItem.ItemTemplate/MenuItemMenuItemNameMenuConnectCursorHandFontWeightBoldForeground{DynamicResource DarkPrimaryBrush}Header文件MenuItem.IconPathData{StaticResource FileGeometry}Fill{DynamicResource DarkPrimaryBrush}StretchUniform //MenuItem.IconMenuItemNameAddConnectClickAddConnect_OnClickFontWeightNormalHeader新建连接MenuItem.IconPathData{StaticResource NewConnectGeometry}Fill{DynamicResource DarkPrimaryBrush}StretchUniform //MenuItem.Icon/MenuItemMenuItemNameImportMarkClickImportMark_OnClickFontWeightNormalHeader导入备注MenuItem.IconPathData{StaticResource ImportGeometry}Fill{DynamicResource DarkPrimaryBrush}StretchUniform //MenuItem.Icon/MenuItemMenuItemNameExportDocClickExportDoc_OnClickFontWeightNormalHeader导出文档MenuItem.IconPathData{StaticResource ExportGeometry}Fill{DynamicResource DarkPrimaryBrush}StretchUniform //MenuItem.Icon/MenuItem/MenuItemMenuItemNameMenuGroupClickMenuGroup_OnClickCursorHandFontWeightBoldForeground{DynamicResource DarkPrimaryBrush}Header分组MenuItem.IconPathData{StaticResource GroupGeometry}Fill{DynamicResource DarkPrimaryBrush}StretchUniform //MenuItem.Icon/MenuItemMenuItemNameMenuSettingClickMenuSetting_OnClickCursorHandFontWeightBoldForeground{DynamicResource DarkPrimaryBrush}Header设置MenuItem.IconPathData{StaticResource SettingGeometry}Fill{DynamicResource DarkPrimaryBrush}StretchUniform //MenuItem.Icon/MenuItemMenuItemNameMenuAboutClickMenuAbout_OnClickCursorHandFontWeightBoldForeground{DynamicResource DarkPrimaryBrush}Header关于MenuItem.IconPathData{StaticResource InfoGeometry}Fill{DynamicResource DarkPrimaryBrush}StretchUniform //MenuItem.Icon/MenuItem/Menu/StackPanel /hc:GlowWindow.NonClientAreaContent !-- 工具栏菜单 --其中有个小插曲在WPF中是默认不支持svg图形的所以我们需要引用一个组件SharpVectors,它的使用方法是这样的引用svg界面需要引入下面语句xmlns:svgchttp://sharpvectors.codeplex.com/svgc/然后引用要显示的svg图形svgc:SvgViewboxWidth16Height16HorizontalAlignmentLeftIsHitTestVisibleFalseSource{Binding Icon} /二.左侧菜单栏然后就是左侧的菜单栏我们要实现一个数据库的选择和数据库对象的搜索可以搜索相关表、视图、存储过程等对象。首先我们要对我们的主界面进行一个简单的1:1:1的竖向布局分别为左侧菜单栏、中间可以移动的分隔栏、右面的主界面!-- Main区域 -- Grid x:NameGridMain Background{StaticResource CloudDrawingBrush}Grid.RowDefinitionsRowDefinition Height* //Grid.RowDefinitionsGrid.ColumnDefinitionsColumnDefinition Width3.3* MinWidth200 /ColumnDefinition WidthAuto /ColumnDefinition Width6.6* //Grid.ColumnDefinitions /Grid现在我们要实现一个左侧树形的菜单栏我们使用的是WPF里面的TreeView控件进行实现这样一个功能下面是相关代码DockPanel Grid.Row0 Grid.Column0hc:SimplePanelBorderMargin5,5,0,5Background{DynamicResource RegionBrush}CornerRadius{Binding CornerRadius}GridHeightAutoMargin5BackgroundTransparentTextBox x:NameHidSelectDatabase VisibilityHidden /GridGrid.ColumnDefinitionsColumnDefinition Width8* /ColumnDefinition Width1* MinWidth30 //Grid.ColumnDefinitionsComboBoxx:NameSelectDatabaseHeight30VerticalAlignmentTopHorizontalContentAlignmentStretchhc:BorderElement.CornerRadius5hc:InfoElement.Placeholder请选择数据库CursorHandIsTextSearchEnabledTrueSelectionChangedSelectDatabase_OnSelectionChangedStyle{StaticResource ComboBoxExtend}Text{Binding DbName}ComboBox.ItemTemplateDataTemplateStackPanel VerticalAlignmentCenter OrientationHorizontalImageWidth11Height15Source/SmartSQL;component/Resources/Img/dataBase.ico /TextBlockMargin5,0,0,0HorizontalAlignmentCenterVerticalAlignmentCenterText{Binding DbName} //StackPanel/DataTemplate/ComboBox.ItemTemplate/ComboBoxButtonNameBtnFreshGrid.Column2Margin0,0,0,0Padding4VerticalAlignmentTopBackgroundTransparentBorderThickness0ClickBtnFresh_OnClickCursorHandButton.ContentImage Source/SmartSQL;component/Resources/Img/Refresh.png StretchFill //Button.Content/Button/Gridhc:SearchBarx:NameSearchMenuHeight30Margin0,34,0,0Padding5,0,5,0VerticalAlignmentTopHorizontalContentAlignmentStretchhc:BorderElement.CornerRadius5hc:InfoElement.Placeholder搜索数据表/视图/存储过程FontSize13ShowClearButtonTrueStyle{StaticResource SearchBarPlus}TextChangedSearchMenu_OnTextChanged /TabControlx:NameTabLeftTypeMargin0,65,0,40SelectionChangedTabLeftType_OnSelectionChangedStyle{StaticResource TabControlInLine}TabItemx:NameTabAllDataCursorHandHeader全部IsSelectedTrue /TabItemx:NameTabGroupDataCursorHandHeader分组IsSelectedFalse /!--TabItemx:NameTabFavDataCursorHandHeader收藏IsSelectedFalse /--/TabControlTreeViewx:NameTreeViewTablesMargin0,100,0,0VerticalAlignmentTopBorderThickness0ItemsSource{Binding TreeViewData}SelectedItemChangedSelectedTable_OnClickTreeView.ItemContainerStyleStyle BasedOn{StaticResource TreeViewItemBaseStyle} TargetType{x:Type TreeViewItem}Setter PropertyIsExpanded Value{Binding IsExpanded} /Setter PropertyFontWeight Value{Binding FontWeight} /Setter PropertyFontSize Value12 /Setter PropertyVisibility Value{Binding Visibility} /Setter PropertyForeground Value{Binding TextColor} /Setter PropertyCursor ValueHand /!-- 禁止水平滚动条自动滚动 --EventSetter EventRequestBringIntoView HandlerEventSetter_OnHandler /Style.TriggersTrigger PropertyIsSelected ValueTrueSetter PropertyFontWeight ValueBold //Trigger/Style.Triggers /Style/TreeView.ItemContainerStyleTreeView.ContextMenu!-- 右键菜单 --ContextMenu VisibilityVisibleMenuItemx:NameMenuSelectedItemPadding5,0,5,0VerticalAlignmentCenterClickMenuSelectedItem_OnClickCursorHandHeader复制对象名 //ContextMenu/TreeView.ContextMenuTreeView.ItemTemplateHierarchicalDataTemplate DataType{x:Type models:TreeNodeItem} ItemsSource{Binding Children}StackPanel OrientationHorizontalsvgc:SvgViewboxWidth12Height12Margin0,0,5,0HorizontalAlignmentLeftSource{Binding Icon} /TextBlockVerticalAlignmentCenterFontSize12Text{Binding DisplayName}ToolTip{Binding DisplayName} //StackPanel/HierarchicalDataTemplate/TreeView.ItemTemplate/TreeViewGridx:NameNoDataTextMargin0,100,0,5HorizontalAlignmentStretchBackgroundWhiteCursorArrowlocal:NoDataAreax:NameNoDataAreaTextMargin0HorizontalAlignmentCenterShowTypeAll //GridGridMargin0VerticalAlignmentBottomVisibilityHiddenGrid.ColumnDefinitionsColumnDefinition Width4* /ColumnDefinition Width6* /ColumnDefinition WidthAuto //Grid.ColumnDefinitionsGridComboBoxx:NameCbTargetConnectHeight26VerticalAlignmentBottomHorizontalContentAlignmentLefthc:InfoElement.Placeholder目标连接CursorHandDisplayMemberPathConnectNameIsTextSearchEnabledTrueSelectedValuePathDbMasterConnectStringSelectionChangedCbTargetConnect_OnSelectionChangedStyle{StaticResource ComboBoxExtend} //GridGrid Grid.Column1 Margin5,0,0,0ComboBoxx:NameCbTargetDatabaseMinWidth50VerticalAlignmentBottomHorizontalContentAlignmentLefthc:InfoElement.Placeholder目标数据库CursorHandIsTextSearchEnabledTrueStyle{StaticResource ComboBoxExtend} //GridGrid Grid.Column2!-- 差异比较按钮 --Buttonx:NameBtnCompareHeight30Margin5,5,0,0HorizontalAlignmentRighthc:BorderElement.CornerRadius6hc:IconElement.Geometry{StaticResource CompareGeometry}ClickBtnCompare_OnClickContent差异比较CursorHand //Grid/Grid!-- 数据加载Loading --hc:LoadingLinex:NameLoadingLineMargin0,0,0,0VisibilityCollapsed //Grid/Border/hc:SimplePanel/DockPanel在这里我没有详细介绍底层c#的相关代码里面逻辑有些复杂感兴趣的可以去我的开源项目中学习。在上面的左侧菜单代码中我们使用的不仅有TreeView控件、也有ContextMenu、hc:LoadingLine等控件还有自己写的自定义控件。其实WPF要比WinForm好用不少不仅支持MVVM数据绑定还支持灵活的页面渲染自从用了WPF再也不用WinForm了。今天分享暂时到这里下一篇将介绍DataGrid表格数据绑定及相关条件搜索。下面是工具的开源地址感兴趣的可以Clone下来学习一下。码砖不易喜欢的麻烦点下Star.开源地址https://gitee.com/izhaofu/SmartSQL
http://www.zqtcl.cn/news/571431/

相关文章:

  • 那些网站可以做反链免费游戏不用登录直接玩
  • 安徽网站建设的基本步骤接外贸订单的平台
  • 那些网站可以找得到做货代的广东企业微信网站开发
  • 海宁市建设局官方网站6哔哩哔哩网页版官网在线观看
  • 泉州网站建设轩奇网讯韩国美容网站模板
  • 培训好吗网站建设wordpress手游
  • 元典科技网站建设网页设计制作图片页面
  • 网站设置什么意思无代码搭建平台
  • 织梦做的网站后台登录做网站购买域名
  • 哈尔滨网站关键词优化排名合江做网站
  • 手机网站自动适配旅游网络营销方案
  • 敦化网站开发黔东南购物网站开发设计
  • 建设一个网站 需要提供什么如何免费推广自己的网站
  • 佛山企业网站制作公司中国互联网企业100强榜单
  • 买了域名就可以做网站怎么创造游戏软件
  • 广东广州电脑个人建站徐州网站排名公司
  • 网站优化 流量做网站对企业有什么好处
  • 建设机械网站制作人工智能工程师月薪多少
  • wordpress 百度站长沈阳app开发公司哪家好
  • 做网站平台公司网站建设硬件环境
  • 可视化编辑建站平台新密市城乡建设局网站
  • 电子商务的网站的建设内容wordpress主题 微软
  • 什么软件可以做动画视频网站网站的按钮怎么做 视频
  • 饰品做商城网站模式17网站一起做网店新塘
  • 微信做的地方门户网站做设计的平台
  • 旅游网站建设国内外现状安卓开发软件安装教程
  • 网站建设必备网站自助建设
  • 杭州免费自助建站模板辽宁建设工程信息网为什么打不开
  • sdcms网站源码百度怎么免费做网站
  • 图书馆网站参考咨询建设wordpress安装500