博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wpf首次项目开发技术总结wpf页面
阅读量:5065 次
发布时间:2019-06-12

本文共 2515 字,大约阅读时间需要 8 分钟。

   对于初次面对这么一个曾未接触的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=""
        xmlns:x=""
        Title="Window1" Height="300" Width="300">
    <Grid>
       
    </Grid>
</Window>page页

<Page x:Class="WpfBrowserApplication1.Page2"

      xmlns=""
      xmlns:x=""
      xmlns:mc=""
      xmlns:d=""
      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=""
             xmlns:x=""
             xmlns:mc=""
             xmlns:d=""
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
           
    </Grid>
</UserControl>这是用户控件页面,他是为开发人员提供自定义用户控件的页面,可以直接添加到要使用的windows窗体中

ResourceDictionary资源字典页面

<ResourceDictionary xmlns=""

                    xmlns:x="">
   
</ResourceDictionary>在 Silverlight 中,并非所有类型和对象都适合  用法。 为了在  中定义某个对象并从其中访问该对象,该对象必须成为可共享的对象。 可共享是必须的,因为当在运行时构造并使用应用程序的对象树时,对象不能存在于多个树中的位置。作为资源而使用,资源字典的对象必须受 Silverlight 资源共享行为或诸如对象引用的间接机制的支持。这些机制都需要额外代码的支持。   类型派生的任何对象在本质上都不是可共享的,除非该对象是从控件模板生成的(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

你可能感兴趣的文章
线程同步机制初识 【转载】
查看>>
Oracle 游标使用全解
查看>>
SQL语句在查询分析器中可以执行,代码中不能执行
查看>>
yii 1.x 添加 rules 验证url数组
查看>>
html+css 布局篇
查看>>
银行排队问题(详解队列)
查看>>
序列化和反序列化(1)---[Serializable]
查看>>
SQL优化
查看>>
用C语言操纵Mysql
查看>>
轻松学MVC4.0–6 MVC的执行流程
查看>>
4.9 Parser Generators
查看>>
redis集群如何清理前缀相同的key
查看>>
redis7--hash set的操作
查看>>
20.字典
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
oracle用户锁定
查看>>
(转)盒子概念和DiV布局
查看>>
Android快速实现二维码扫描--Zxing
查看>>
获取元素
查看>>
nginx+lighttpd+memcache+mysql配置与调试
查看>>