zoukankan      html  css  js  c++  java
  • SilverLight之路(一)

    项目:TFT-WebFirst-SL

    环境:Win7,VS2010,Blend4,SilverLight4,Silverlight Toolkit,SQL Server 2008

    打开VS2010,新建项目,选择Sliverlight 应用程序,在项目名称中输入TFT-WebFirst-SL

     

    接下来会询问是否创建新的网站来承载sl应用程序,我们选择默认

     

    这样,我们的sl应用程序与承载它的网站就已经建好了,项目结构如下

     

    F5运行起来看看,编译通过,一个白页,啥也没有(废话,啥也没做呢有个P啊),那我们就先从第一个窗体开始,系统登录页

    打开Blend4,打开我们刚刚建立的解决方案,在TFT-WebFirst-SL右建,添加新项,选择UserControl,输入名称Login.xaml

     

    Blend自动进入该页面的编辑状态

     

    先看一下我们要实现的效果

     

    这个页面没什么内容,主要就sl的布局。由于我们原来的项目是传统的web应用,所以很多效果是由图片实现的,而我本身又不是美工设计,拿来主义,按传统实现进行吧(真正的项目中不建议这么做,毕竟sl与以往的Html是有很大不同的)

    话不多说,开工!

    既然要用到图片资源,那就首选在项目中新建Images文件夹,然后复制需要的图片,选择Images文件夹,直接粘贴即可,不过Blend会自动把图片加载到设计窗口,由于我们目前还没有进行布局,所以先删掉。

    有了需要的资源后,我们开始进行页面布局。众所周知的,在sl中,布局控件有如下几种

     

    这个不多说,基础教程有的是。我们在这里先拉一个Grid到界面中,然后定义Grid为3行1列,鼠标操作即可,如图

     

    选择我们需要的图片,直接拉到相应的行中

     

    可以先不用管对齐,回头我们再进行

    而中间的那一行,我们再放一个Grid,定义为1行2列

    与之前一样,对应的图片入位

    而再第1列中,我们需要一些元素进行用户交互,这里也是这个登录页面的关键布局。再拉一个Grid到第1列中,设置其背景图片,默认Stretch为Fill即可

    我们定义这个Grid为4行1列,并在前三行中各放一个StackPanel,在对象和时间线面板中按做shift同时选中这三个StackPanel,在属性窗口中设置它们的Orientation为Vertical,以使它们的子控件可以横向排列,接下来放置两个textblock,一个textbox,一个password,两个button控件到相应位置,最终效果如图

     

    乱七八糟是吧,这时我们开始设置各元素的对齐与前景色、背景色等属性,当然,其实在放置控件的过程中也是可以进行的,这里需要注意的是,由于使用的是图片填充,所以,相应的大小就要设置成固定的像素值,否则图片就会被拉伸变形,比如上图中的400电话那张背景图片就已经变形了。

    特别的,如果在放置控件的过程中把元素放错了容器,在对象和时间线面板里,各个元素是可以进行随意拖放的

    最终的效果如下图

     

    关于界面布局,有几点是要说明一下的

    特别注意各元素的marge、width和height属性,还有HorizontalAlignment、HorizontalAlignment,这几个属性是控件元素大小与位置的关键,一般的都不用设置值(可以使用属性设置器后面按钮菜单中的重置功能)

    StackPanel中的子元素间距没有统一的属性设置,需要靠设置各子元素的marge来实现。

    Grid中的子元素可以通过设置Grid的附加属性来设置在Grid中的行号与列号。

    界面做完了,那么怎么才能在运行中看到效果呢?现在直接运行肯定是不行,需要做一些操作,我们默认的启动页面是MainPage,这个在App中是可以控制的,因为我们要做的是全站的sl,所以我们不需要去修改它,但如果想看到登录界面,就要在MainPage的Load事件中创建一个Login窗口,并把它加到当前的根元素下,代码如下

     

    void MainPage_Loaded(object sender, RoutedEventArgs e)

    {

    Login l
    = new Login();

    this.LayoutRoot.Children.Add(l);

    }

    我们再启动看看,已经可以看到登录窗口了吧。但外面却有大片空白,与我们的最终效果不符,那么我们只要修改一下mainpage中的根grid的背景色就可以了。

  • 相关阅读:
    React 官网列子学习
    阿里云图片裁剪
    Android list加载图片工具类
    Java 反射
    Android 调节图片工具类
    Android 设置资源字体,屏幕截图
    android 跨进程通讯 AIDL
    android sdk api结构解析
    android学习之activity
    驱动进阶1
  • 原文地址:https://www.cnblogs.com/meteortent/p/2075503.html
Copyright © 2011-2022 走看看