之前用Grid练习连连看布局时,遇到了几个困惑。此次就把当时的一些收获写出来,供以后翻看。


图片路径可能比较常用,所以就写在第一个了。
在xaml中,设置图片非常简单,只要把图片拷贝到资源目录(这里假设在\image下),然后再在xaml中写:
<Image x:Name="img" Source="XXX.jpg"></Image>

然而,程序界面上的内容并不是一成不变的,如果我们需要在运行时根据用户的需求改变显示图片该怎么办呢?这就要到后置代码(C#)里改了。

不过,问题来了——在代码里怎么写都会划红线。无法进行类型转换。这就要用到System.Windows.Media.Imaging类了。不过,这里就不必要引用了,因为默认已经引用了。
生成一个BitmapImage对象的实例,其构造函数接受一个Uri对象。
具体代码为:
img.Source = new BitmapImage(new Uri(@"2.jpg",UriKind.Relative));
Uri的第二个参数指定该地址为相对地址(一般不用绝对地址)。


接着是在后置代码中用Grid布局了。
首先,在xaml中添加一个Grid标签,并指定Name属性。

<Grid x:Name="grid_1"></Grid>

说明一下要用Grid将界面分为两行两列

后置代码:

ColumnDefinition cludef = new ColumnDefinition();
grid_1.ColumnDefinitions.Add(cludef);
grid_1.ColumnDefinitions.Add(cludef);
RowDefinition rowdef = new RowDefinition();
grid_1.RowDefinitions.Add(rowdef);
grid_1.RowDefinitions.Add(rowdef);

首先实例化了ColumnDefinition(列),然后grid_1添加了两列(因为只有两列,所以就不写循环了),行类同。

如果你要添加十行十列,就有必要写循环了。

结合上面的图片应用,如果要将图片放在第二行第二列怎么办呢?
这时候就要调用Grid.SetColumn和Grid.SetRow静态方法了。

Grid.SetColumn(img,1);
Grid.SetRow(img,1);

img为上文中Image标签的Name属性。
这里是1而不是2的原因是Grid布局行列是从0开始的。

wpf后置代码中的Grid布局以及图片路径的设置的更多相关文章

  1. DevExpress后置代码中初始化SQL数据源的方法

    //初始化SQL数据源的提供者和连接字符串 函数 OK public virtual void InitSqlDataSource_ConStr(SqlDataSource sql_ds) { Con ...

  2. .NET在后置代码中输入JS提示语句(背景不会变白)

    来源:http://niunan.iteye.com/blog/248256 Page.ClientScript.RegisterStartupScript(Page.GetType(), " ...

  3. 图文详解前端CSS中的Grid布局,你真的可以5分钟掌握

    前言 网站的布局是一个网站设计的根本,CSS的Grid布局已经成为了未来网站布局的基本方式. 今天这篇文章我们通过图文,一起看看如何自己实现Grid布局方式. CSS 第一个Grid布局 首先我们看看 ...

  4. css 中的grid布局基础

    CSS Grid Layout为CSS引入了一个二维网格系统.网格可用于布局主要页面区域或小型用户界面元素. 网格是一组交叉的水平和垂直线 - 一组定义列,其他行.元素可以放在网格上,以行或者列为标准 ...

  5. 代码中动态改变布局属性RelativeLayout.LayoutParams.addRule()

    我们知道,在 RelativeLayout 布局中有很多特殊的属性,通常在载入布局之前,在相关的xml文件中进行静态设置即可. 但是,在有些情况下,我们需要动态设置布局的属性,在不同的条件下设置不同的 ...

  6. 在代码中修改TextView的DrawableRight图片

    TextView的xml <TextView android:id="@+id/textciew1" android:layout_width="match_par ...

  7. 用mybatis做数据库处理 代码中的字段大小写 要和mapper映射设置的大小写一致(这TM不废话么,原谅我渣!~~)

    简单描述情况:其实这个问题怎么说呢,有人给你说,你肯定能意识到,必须大小写对应的嘛.emmmm我现在才意识到是因为:自己在下边敲代码,配的mapper文件并没有把属性变量,和数据库里的段单独提出来做映 ...

  8. 从实例中学习grid布局

    对于Web开发者来说,网页布局一直是个比较重要的问题. Web 布局主要经历了以下四个阶段: 1.table表格布局: 2.float浮动及position定位布局: 3.flex弹性盒模型布局,革命 ...

  9. web项目打包后在代码中获取资源文件

    在web项目里面,有时代码里面需要引用一些自定义的配置文件,这些配置文件如果放在类路径下,项目经过打包后使用的相对路径也会发生变化,所以以下给出了三种解决方案. 一.properties下配置 在类路 ...

随机推荐

  1. mysql中TPS, QPS 的计算方式

    今天突然有个同事问题一个问题, mysqlTPS和QPS的计算公式是什么? 以前确实也没有关注过这个计算公式,所以查了下学习了下: 下面是参考内容.  在做db基准测试的时候,qps,tps 是衡量数 ...

  2. Android L(5.0)源码之图形与图像处理之动画——Frame、Tween、属性动画、SurfaceView

    工作中暂时还没涉及到,暂时先不总结

  3. 关于ios 推送功能的终极解决

    刚刚做了一个使用推送功能的应用 遇到了一些问题整的很郁闷 搞了两天总算是弄明白了 特此分享给大家 本帖 主要是针对产品发布版本的一些问题 综合了网上一些资料根据自己实践写的 不过测试也可以看看 首先要 ...

  4. 【转】安卓Fragment不完全介绍

    转两篇博客: 1.http://blog.csdn.net/lmj623565791/article/details/37970961 2.http://blog.csdn.net/lmj623565 ...

  5. 【转】安卓Java的虚拟机区别

    Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...

  6. 输入计算表达式,将他们存在string【】中

    #include<stdio.h>#include<string>#include<string.h>#include<stdlib.h>#includ ...

  7. ios framework 开发 之 实战二 ,成功

    1. 新建工程.引入cocoapod略过不提 2. 更改cocoapod类名 这是因为,引用framework的工程中,也有一个同样的文件,及文件里同样的类. 这个文件不能删除,但是可以重命名. 3. ...

  8. iOS MVVM 前世今生

    MVVM,Model-View-ViewModel,一个从 MVC 模式中进化而来的设计模式,最早于2005年被微软的 WPF 和 Silverlight 的架构师 John Gossman 提出.

  9. 11.TCP的交互数据流

          TCP报文段一般有两类,分别是成块数据和交互数据. 1.交互式输入     Rlogin连接上键入一个交互命令的数据流如下图所示.     每一个交互按键都会产生一个数据分组,每次从客户传 ...

  10. C# 存储过程使用方法

                CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OU ...