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

网站的引导页面是什么意思手机赚钱项目大全网

网站的引导页面是什么意思,手机赚钱项目大全网,wordpress ajax 评论翻页,深圳网站制作公司兴田德润官方网站一.实现左侧菜单绑定 效果图: 1.首先需要在项目中创建 mvvm 的架构模式 创建 Models #xff0c;放置实体类。 实体类需要继承自Prism 框架的 BindableBase#xff0c;目的是让实体类支持数据的动态变更! 例如: 系统导航菜单实体类 / summary/// 系统导航菜单实体类… 一.实现左侧菜单绑定 效果图: 1.首先需要在项目中创建 mvvm 的架构模式 创建 Models 放置实体类。 实体类需要继承自Prism 框架的 BindableBase目的是让实体类支持数据的动态变更! 例如: 系统导航菜单实体类 / summary/// 系统导航菜单实体类/// /summary public class MenuBar:BindableBase{private string icon;/// summary/// 菜单图标/// /summarypublic string Icon{ get { return icon; } set { icon value; }}private string title;/// summary/// 菜单名称/// /summarypublic string Title{ get { return title; } set { title value; }}private string nameSpace;/// summary/// 菜单命名空间/// /summarypublic string NameSpace{ get { return nameSpace; } set { nameSpace value; }}} 创建View文件夹  放置前端显示页面 。例如创建首页MainView.xaml创建ViewModel 文件夹放置前端逻辑处理类。意思是:有前端页面同时也要有对应的后台业务逻辑处理类。例如MainViewModel 使用了Prism 框架一些视图或类的定义都是有约定的。例如视图统一使用xxxView 结尾。视图模形统一使用xxxViewModel 结尾。这样做的原因是第一规范第二方便使用 Prism 进行动态的方式绑定上下文的时候能自动找到对应类。Prism 动态上下文绑定方式引入命名空间把 AutoWireViewModel 设置成 True xmlns:prismhttp://prismlibrary.com/prism:ViewModelLocator.AutoWireViewModelTrue 2.创建MainViewModel 逻辑处理类 MainViewModel 类同样也需要继承自Prism 框架的 BindableBase  创建左侧菜单的数据需要使用到一个动态的属性集合 ObservableCollection 来存放菜单的数据 创建菜单数据 public class MainViewModel: BindableBase{public MainViewModel(){MenuBarsnew ObservableCollectionMenuBar();CreateMenuBar();}private ObservableCollectionMenuBar menuBars;public ObservableCollectionMenuBar MenuBars{get { return menuBars; }set { menuBars value; RaisePropertyChanged(); }}void CreateMenuBar(){MenuBars.Add(new MenuBar() { IconHome,Title首页,NameSpaceIndexView});MenuBars.Add(new MenuBar() { Icon NotebookCheckOutline, Title 待办事项, NameSpace ToDoView });MenuBars.Add(new MenuBar() { Icon NotebookPlusOutline, Title 忘备录, NameSpace MemoView });MenuBars.Add(new MenuBar() { Icon Cog, Title 设置, NameSpace SettingsView });}} NameSpace主要用于导航Icon是Material DesignThemes UI 框架里面的图标名称 3.MainView.xaml 前端绑定数据 列表数据的绑定使用ListBox 的自定义模板也就是 ListBox.ItemTemplate并且写法是固定的 !--列表-- ListBoxListBox.ItemTemplateDataTemplate!--在这里添加内容数据--/DataTemplate/ListBox.ItemTemplate /ListBox 例如结合上面创建MainViewModel 类给MainView.xaml 渲染数据 !--列表-- ListBox ItemsSource{Binding MenuBars}ListBox.ItemTemplateDataTemplateStackPanel OrientationHorizontalmaterialDesign:PackIcon Kind{Binding Icon} Margin15,0 /TextBlock Text{Binding Title} Margin10,0//StackPanel/DataTemplate/ListBox.ItemTemplate /ListBox MainView.xaml 添加动态绑定 上下文 xmlns:prismhttp://prismlibrary.com/ prism:ViewModelLocator.AutoWireViewModelTrue 注意项目中的MainWindow.xaml 已经改成了MainView.xaml并且把启动页设置成 MainView了 最终项目结构  4.左侧菜单样式调整 在App.xaml 资源文件中更改默认的主题颜色 更改左侧列表选择的样式  重写自定义样式 在App.xaml 文件中 资源字典 ResourceDictionary 节点中设置Style 属性来进行样式重写 Style 使用方式 TargetType 设置作用的目标类型 Setter 设计器里面有2个常用属性分别是Property 和Value。用来改变设置作用的目标类型一些属性的值key: 通过指定的key 来使用重写的样式 例如设置ListBoxItem 属性中的最小行高为40 Style TargetTypeListBoxItemSetter PropertyMinHeight Value40/ /Style 3. Property 中有一个特别的属性Template。用于改变控件的外观样式。并且也有固定的写法 Setter PropertyTemplateSetter.ValueControlTemplate TargetType{x:Type ListBoxItem}/ControlTemplate/Setter.Value /Setter TargetType 有2种写法 一种是直接用Style 设置一些属性可以这样写 TargetTypeListBoxItem另外一种写法是当需要使用到自定义模板也就是要改变控件的外观样式时Property 设置的值为 Template里面TargetType 写法就变成这样 TargetType{x:Type ListBoxItem}使用自定义的模板时需要使用到一个属性 ContentPresenter把原有模板的属性原封不动的投放到自定义模板。 4. 触发器它按条件应用属性值或执行操作 如果使用Template 自定义控件样式后需要搭配触发器进行使用。 例如 ControlTemplate TargetType{x:Type ListBoxItem}Grid!--内容最左侧的样式--Border x:NameborderHeader/!--内容选中的样式--Border x:Nameborder/!--内容呈现,使用自定义模板时不加该属性原先的内容无法呈现--ContentPresenter HorizontalAlignment{TemplateBinding HorizontalAlignment}VerticalAlignment{TemplateBinding VerticalContentAlignment}//Grid!--触发器--ControlTemplate.Triggers!--如果是选中状态--Trigger PropertyIsSelected ValueTrue!--第一个Border 设置边框样式--Setter PropertyBorderThickness TargetNameborderHeader Value4,0,0,0/!--第一个Border 设置边框颜色value 动态绑定主要是为了适应主题颜色更改时边框也着变--Setter PropertyBorderBrush TargetNameborderHeader Value{DynamicResource PrimaryHueLightBrush}/!--第二个border 设置选中的样式--Setter PropertyBackground TargetNameborder Value{DynamicResource PrimaryHueLightBrush}/!--第二个border 设置选中的透明度--Setter PropertyOpacity TargetNameborder Value0.2//Trigger!--鼠标悬停触发器,如果鼠标悬停时--Trigger PropertyIsMouseOver ValueTrue!--第二个border 设置选中的样式--Setter PropertyBackground TargetNameborder Value{DynamicResource PrimaryHueLightBrush}/!--第二个border 设置选中的透明度--Setter PropertyOpacity TargetNameborder Value0.2//Trigger/ControlTemplate.Triggers /ControlTemplate 5. 样式写完后需要在MainView.xmal 的ListBox中使用这个样式资源文件通过指定Key 来使用。 二.源码 1.MainView.xaml Window x:ClassMyToDo.Views.MainViewxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:MyToDoxmlns:prismhttp://prismlibrary.com/prism:ViewModelLocator.AutoWireViewModelTrueWindowStyleNone WindowStartupLocationCenterScreen AllowsTransparencyTrueStyle{StaticResource MaterialDesignWindow}TextElement.Foreground{DynamicResource MaterialDesignBody}Background{DynamicResource MaterialDesignPaper}TextElement.FontWeightMediumTextElement.FontSize14FontFamily{materialDesign:MaterialDesignFont}mc:Ignorabledxmlns:materialDesignhttp://materialdesigninxaml.net/winfx/xaml/themesTitleMainWindow Height768 Width1280materialDesign:DialogHost DialogThemeInheritIdentifierRootDialogSnackbarMessageQueue{Binding ElementNameMainSnackbar, PathMessageQueue}materialDesign:DrawerHost IsLeftDrawerOpen{Binding ElementNameMenuToggleButton, PathIsChecked}!--左边菜单--materialDesign:DrawerHost.LeftDrawerContentDockPanel MinWidth220 !--头像--StackPanel DockPanel.DockTop Margin0,20Image Source/Images/user.jpg Width50 Height50Image.ClipEllipseGeometry Center25,25 RadiusX25 RadiusY25 //Image.Clip/ImageTextBlock TextWPF gg Margin0,10 HorizontalAlignmentCenter //StackPanel!--列表--ListBox ItemContainerStyle{StaticResource MyListBoxItemStyle} ItemsSource{Binding MenuBars}ListBox.ItemTemplateDataTemplateStackPanel OrientationHorizontal BackgroundTransparentmaterialDesign:PackIcon Kind{Binding Icon} Margin15,0 /TextBlock Text{Binding Title} Margin10,0//StackPanel/DataTemplate/ListBox.ItemTemplate/ListBox/DockPanel/materialDesign:DrawerHost.LeftDrawerContentDockPanel !--导航条色块--materialDesign:ColorZone Padding16 x:NameColorZonematerialDesign:ElevationAssist.ElevationDp4DockPanel.DockTopModePrimaryMidDockPanel LastChildFillFalse!--上左边内容--StackPanel OrientationHorizontalToggleButton x:NameMenuToggleButtonAutomationProperties.NameHamburgerToggleButtonIsCheckedFalseStyle{StaticResource MaterialDesignHamburgerToggleButton} /Button Margin24,0,0,0materialDesign:RippleAssist.Feedback{Binding RelativeSource{RelativeSource Self}, PathForeground, Converter{StaticResource BrushRoundConverter}}Command{Binding MovePrevCommand}Content{materialDesign:PackIcon KindArrowLeft,Size24}Foreground{Binding RelativeSource{RelativeSource AncestorType{x:Type FrameworkElement}}, Path(TextElement.Foreground)}Style{StaticResource MaterialDesignToolButton}ToolTipPrevious Item /Button Margin16,0,0,0materialDesign:RippleAssist.Feedback{Binding RelativeSource{RelativeSource Self}, PathForeground, Converter{StaticResource BrushRoundConverter}}Command{Binding MoveNextCommand}Content{materialDesign:PackIcon KindArrowRight,Size24}Foreground{Binding RelativeSource{RelativeSource AncestorType{x:Type FrameworkElement}}, Path(TextElement.Foreground)}Style{StaticResource MaterialDesignToolButton}ToolTipNext Item /TextBlock Margin16,0,0,0HorizontalAlignmentCenterVerticalAlignmentCenterAutomationProperties.NameMaterial Design In XAML ToolkitFontSize22Text笔记本 //StackPanel!--上右边图标--StackPanel DockPanel.DockRight OrientationHorizontalImage Source/Images/user.jpg Width25 Height25Image.ClipEllipseGeometry Center12.5,12.5 RadiusX12.5 RadiusY12.5 //Image.Clip/ImageButton x:NamebtnMin Style{StaticResource MaterialDesignFlatMidBgButton}materialDesign:PackIcon KindMoveResizeVariant //ButtonButton x:NamebtnMax Style{StaticResource MaterialDesignFlatMidBgButton}materialDesign:PackIcon KindCardMultipleOutline //ButtonButton x:NamebtnClose Style{StaticResource MaterialDesignFlatMidBgButton} CursorHandmaterialDesign:PackIcon KindWindowClose //Button/StackPanel/DockPanel/materialDesign:ColorZone/DockPanel/materialDesign:DrawerHost/materialDesign:DialogHost /Window2.MainViewModel namespace MyToDo.ViewModels {public class MainViewModel: BindableBase{public MainViewModel(){MenuBarsnew ObservableCollectionMenuBar();CreateMenuBar();}private ObservableCollectionMenuBar menuBars;public ObservableCollectionMenuBar MenuBars{get { return menuBars; }set { menuBars value; RaisePropertyChanged(); }}void CreateMenuBar(){MenuBars.Add(new MenuBar() { IconHome,Title首页,NameSpaceIndexView});MenuBars.Add(new MenuBar() { Icon NotebookCheckOutline, Title 待办事项, NameSpace ToDoView });MenuBars.Add(new MenuBar() { Icon NotebookPlusOutline, Title 忘备录, NameSpace MemoView });MenuBars.Add(new MenuBar() { Icon Cog, Title 设置, NameSpace SettingsView });}} }3.App.xaml prism:PrismApplication x:ClassMyToDo.Appxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:localclr-namespace:MyToDoxmlns:materialDesignhttp://materialdesigninxaml.net/winfx/xaml/themesxmlns:prismhttp://prismlibrary.com/Application.ResourcesResourceDictionaryResourceDictionary.MergedDictionariesmaterialDesign:BundledTheme BaseThemeDark PrimaryColorDeepPurple SecondaryColorLime /ResourceDictionary Sourcepack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml //ResourceDictionary.MergedDictionariesStyle x:KeyMyListBoxItemStyle TargetTypeListBoxItemSetter PropertyMinHeight Value40/Setter PropertyTemplateSetter.ValueControlTemplate TargetType{x:Type ListBoxItem}Grid!--内容最左侧的样式--Border x:NameborderHeader/!--内容选中的样式--Border x:Nameborder/!--内容呈现,使用自定义模板时不加该属性原先的内容无法呈现--ContentPresenter HorizontalAlignment{TemplateBinding HorizontalAlignment}VerticalAlignment{TemplateBinding VerticalContentAlignment}//Grid!--触发器--ControlTemplate.Triggers!--如果是选中状态--Trigger PropertyIsSelected ValueTrue!--第一个Border 设置边框样式--Setter PropertyBorderThickness TargetNameborderHeader Value4,0,0,0/!--第一个Border 设置边框颜色value 动态绑定主要是为了适应主题颜色更改时边框也着变--Setter PropertyBorderBrush TargetNameborderHeader Value{DynamicResource PrimaryHueLightBrush}/!--第二个border 设置选中的样式--Setter PropertyBackground TargetNameborder Value{DynamicResource PrimaryHueLightBrush}/!--第二个border 设置选中的透明度--Setter PropertyOpacity TargetNameborder Value0.2//Trigger!--鼠标悬停触发器,如果鼠标悬停时--Trigger PropertyIsMouseOver ValueTrue!--第二个border 设置选中的样式--Setter PropertyBackground TargetNameborder Value{DynamicResource PrimaryHueLightBrush}/!--第二个border 设置选中的透明度--Setter PropertyOpacity TargetNameborder Value0.2//Trigger/ControlTemplate.Triggers/ControlTemplate/Setter.Value/Setter/Style/ResourceDictionary/Application.Resources /prism:PrismApplication
http://www.zqtcl.cn/news/649750/

相关文章:

  • 工作室网站需要备案吗wordpress群发工具
  • 官方网站娱乐游戏城自己做网站的好处
  • 查询建设规范的网站1元网站建设精品网站制作
  • 社交网站的优点和缺点个人网页制作软件
  • 做一家算命的网站有没有专门做淘宝客的网站
  • 网站站点管理在哪里建筑施工图设计
  • 众筹网站开发周期网页云原神
  • 哪些网站可以免费做h5东莞制作企业网站
  • 帝国cms 网站地址设置深圳住房和建设部网站
  • 专业网站建设价格最优网页游戏大全电脑版在线玩
  • 建设租车网站wordpress+js插件开发
  • 定制网站开发与模板商务酒店设计网站建设
  • php 网站部署后乱码wordpress禁止调用头部
  • 网站权重低营销型企业网站建站
  • 大港油田建设网站长春市网站优化公司
  • 嘉峪关市建设局建管科资质网站室内设计入门教程
  • 久久建筑网会员登陆中心百度的搜索引擎优化
  • 做网站好还是做程序员好wordpress new图标
  • 秀洲住房与建设局网站徐州建设工程招投标官方网站
  • 做公司网站要注意哪些问题做章的网站
  • 南京建设网站维护洛阳最新通告今天
  • 网站名称创意大全wordpress公开课插件
  • 淮安市城市建设档案馆网站可以做网页的软件
  • 网站空间服务器wordpress 排除置顶文章
  • 有域名后怎么做网站邯郸做移动网站的地方
  • 商标可以做网站吗网站开发的大学生应届简历
  • 长沙长沙网站建设公司saas系统架构
  • 成都销售型网站长春财经学院多大
  • 手机自己制作表白网站app项目网络计划图怎么画
  • 品牌网站如何做seo浏览器正能量网址