wpf首次项目开发技术总结wpf页面
对于初次面对这么一个曾未接触的wpf项目,我们的历程是艰辛的,但我们的收获是不菲的,就学术型的收获就已经比我在学校课堂的收获多很多啊!现在我技术总结在此,以便留作技术总结。
首先,我们在vs2010的软件环境下开发我们的wpf项目,首先我们了解了一下wpf,它是微软基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。wpf可以做出很多2D/3D的很炫酷的界面,可以开发桌面应用程序也可以做浏览器应用程序。在vs2010中可以利用blend 做到界面设计和代码开发的很好分离。可以使有任何一种.Net编程语言(C#,VB NET等开发语言)进行开发。XAML主要针对界面的可视化控件描述,成生进会分析成.cs或.vb文件,并最后将编译为CLR中间运行语言。他对于widows应用程序的开发是一个革命性的改变。对于以后的应用程序的开发至关重要。
我们建立好我们wpf项目,一开始在我们初步设计方案下搭好基本wpf框架,并实现最简单的连接,但是接下来我们遇到第一问题:我们一开始在不知情的情况下,都是做的是windows窗体,做窗体的连接时,我们开始采用NavigationService.Navigate(new Uri("lose.xaml", UriKind.Relative));进行页面跳转,可以怎么也实现不了,最后网上查询才明白,以上跳转是对于page,而对于windows窗体的跳转,只能用窗体的close/hide事件和show事件:lose c1 =new lose();c1.show();this.close(); 其实对于wpf有7种xaml文件,窗体windows(它是wpf最基本的界元素),<Window x:Class="WpfBrowserApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
</Grid>
</Window>page页
<Page x:Class="WpfBrowserApplication1.Page2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="Page2">
<Grid>
</Grid>
</Page> 他是是页面型的文件,并不是窗体,一个窗体可以加载多个page页,及我们所有的page可以共用一个windows窗体。只是我们需要将windows页面<Windowx:Class="WpfBrowserApplication1.Window1" </Window>改为<NavigationWindow x:Class="WpfBrowserApplication1.Window1"
</NavigationWindow>;多个page页就可以继承windows;
usercontrol用户控件页面<UserControl x:Class="WpfBrowserApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
</Grid>
</UserControl>这是用户控件页面,他是为开发人员提供自定义用户控件的页面,可以直接添加到要使用的windows窗体中
<Window x:Class="WpfApplicationDemo.UserControlDemo"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:my="clr-namespace:WpfApplicationDemo.Control"Title="UserControlDemo" Height="300" Width="300" Loaded="Window_Loaded"><Grid><TextBlock Height="23" HorizontalAlignment="Left" Margin="10,10,0,0" Name="textBlock1" Text="下面是用户控件" VerticalAlignment="Top" /><StackPanel Height="175" HorizontalAlignment="Left" Margin="20,57,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="246" /><my:UserControl1 HorizontalAlignment="Left" Margin="38,46,0,0" x:Name="userControl11" VerticalAlignment="Top" Height="183" Width="406" /></Grid> </Window>
ResourceDictionary资源字典页面
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</ResourceDictionary>在 Silverlight 中,并非所有类型和对象都适合 ResourceDictionary 用法。 为了在 ResourceDictionary 中定义某个对象并从其中访问该对象,该对象必须成为可共享的对象。 可共享是必须的,因为当在运行时构造并使用应用程序的对象树时,对象不能存在于多个树中的位置。作为资源而使用,资源字典的对象必须受 Silverlight 资源共享行为或诸如对象引用的间接机制的支持。这些机制都需要额外代码的支持。 从 UIElement 类型派生的任何对象在本质上都不是可共享的,除非该对象是从控件模板生成的(Silverlight 控件模板化子系统是间接机制的一个突出示例)。一般支持样式,模板,画笔,颜色,动画类型,转换等。他的使用也很简单,在使用页xaml代码中插入: <Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyDictionary1.xaml"/>
<ResourceDictionary Source="MyDictionary2.xaml"/>
<ResourceDictionary Source="Mydictionary3.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
我们终于解决了页面跳转的问题,由于考虑到我们页面跳转位置不会随机,我们采用的是page页,只是用一个公共的windows进行加载。
转载于:https://www.cnblogs.com/nghygaojun/archive/2013/05/10/3071268.html
wpf首次项目开发技术总结wpf页面相关推荐
- vue router 参数_Vue.js项目开发技术解析
Vue.js项目开发技术解析 一.Vue.js实例 在一个Vue.js工程中,用于显示内容最基层的实例称之为根实例.通过该实例可以进行页面或组件的更新和显示.对于项目本身而言,无论是什么样的页面,都要 ...
- DAY10微信小程序项目开发技术总结
一.每日实习任务 1.网页基础知识(html,css,js) 今天老师为我们介绍讲解了网页基础知识(html,css,js).首先,我们安装了谷歌浏览器及sublime text.老师为我们介绍了ht ...
- WPF 多点触摸开发[2]:WPF触摸的几个手势的执行顺序
原文:WPF 多点触摸开发[2]:WPF触摸的几个手势的执行顺序 前面我讲了在win7下使用模拟器,进行调试模拟多点触摸,其实际开发中这样也比较麻烦.. 要拿几个鼠标. 所以更多的人会 买个触摸套 套 ...
- Java job interview:项目开发小组组长网站页面设计
网页设计(web design,又称为Web UI design,WUI design,WUI),是根据企业希望向浏览者传递的信息(包括产品.服务.理念.文化),进行网站功能策划,然后进行的页面设计美 ...
- 项目开发技术点、困难点总结——2020-2021年
一)如何显示和下载二维码? 1.使用第三方组件"vue-qr"进行二维码组件的封装 1)下载引入 npm i vue-qr --save import vueQr from 'vu ...
- 高通 Camera HAL3:项目开发技术点总结
做高通 Camera HAL3开发的一些技术点的总结.整理. 做个记录,方便后续查阅. 1.目录.so.配置文件 productName是项目名 out Target路径:\out\target\pr ...
- 一句话概括H5项目开发技术路线
采用HTML5+CSS3+JavaScript作为主要技术栈,使用了轻量级MVVM框架Vue.js,及其配套的路由管理器vue-router,状态管理器vuex,使用http请求工具axios与后端进 ...
- play(三) play实例项目开发Yabe 2前端页面
1.通过作业加载测试数据: 为了加载测试的数据,我们可以使用下面方法:在application启动时候,加载一个fixture文件.因此,我们创建Bootstrap作业.Play中的作业的概念是:不需 ...
- C# WPF MVVM项目实战(进阶②)
这篇文章还是在之前用Caliburn.Micro搭建好的框架上继续做的开发,今天主要是增加了一个用户窗体ImageProcessView,然后通过Treeview切换选择项之后在界面显示不同效果的图片 ...
最新文章
- pytorch学习笔记(十二):详解 Module 类
- c语言程序设计论文结构,c语言顺序结构设计实验报告.docx
- 12款经典图片轮播jquery插件
- Redhat Linux 7.2 打开或关闭防火墙
- celery 可视化_在Flask中使用Celery进行多任务分布执行
- 怎么解决java.lang.NoClassDefFoundError错误
- 判断字典中指定key是否存在
- php -- 用文本来存储内容,file_put_contents,serialize,unserialize
- 没错,继事理图谱后,我们又搞事情了:数地工场自然语言处理语义开放平台正式对外发布!
- qtp12版本下载安装破解教程
- 关于Spring MVC中文乱码问题的解决方法
- File Cabinet Pro for Mac(菜单栏快捷文件管理软件)
- _stdcall和_cdecl
- 怎么将PDF转换成jpg图片?免费方法了解一下
- 智慧工地给工地装上“最强大脑”
- rust多行字符串字面量
- 树莓派csi摄像头和usb摄像头_一、树莓派CSI摄像头
- Effect C++ 学习笔记三:资源管理
- 刷脸支付是一个不容错过的商机
- 基于javaweb的高校教职工差旅报销管理系统(java+ssm+jsp+html+mysql)