之前用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. LPC1768外部中断与GPIO中断

    LPC1768的外部中断严格来说只有四个,分别是EINT0,EINT1,EINT2,EINT3,技术手册上有如下说明 控制这四个外部中断靠以下寄存器 这三个寄存器的0 1 2 3位分别代表中断的0 1 ...

  2. S3C2440 ADC详解

    S3C2440拥有八通道的十位ADC, 最大转换率为2.5MHz A/D转换器时钟下的500KSPS.A/D转换器支持片上采样-保持功能和掉电模式的操作. 八个通道中有四个通道适用于电阻屏的触摸屏触摸 ...

  3. win7下wamp扩展memcache

    1.服务端安装 1.1 下载地址 http://download.csdn.net/detail/feiyuhit/5873533#comment 1.2 安装 将下载的压缩文件夹的memcached ...

  4. 关于jquery的$.ajax发接口的同步与异步问题

    1.在使用$.ajax发接口时想对返回数据做一些处理后拿到其他方法中使用 发请求函数如下: function getProjectName(projectId){ project.projectNam ...

  5. Asp.NET开启一个线程,不停的执行

    using System;using System.Threading;using System.Threading.Tasks; class StartNewDemo{    static void ...

  6. jquery textarea输入字符字数提示

    效果: html代码: <textarea id="assayInfo" name="assayInfo" rows="3" cols ...

  7. iOS 之 设置横竖屏及ViewWillAppear及视图与导航控制器嵌套时的不同反应

    设置横竖屏不成功,可能跟所在导航控制器有关 视图没有导航控制器时,又有可能不调用ViewWillAppear,这是我遇到的问题.

  8. centos服务器设置代理上网的方法

    这里以centos7.0为例,记录代理服务器设置过程: 1.全局的代理设置: vi /etc/profile 添加下面内容 http_proxy = http://username:password@ ...

  9. codeforces 755C. PolandBall and Forest

    C. PolandBall and Forest time limit per test 1 second memory limit per test 256 megabytes input stan ...

  10. 2.13.1. 对结果排序(Core Data 应用程序实践指南)

    传递NSSortDescriptor给NSFetchRequest进行排序.示例如下,修改demo方法: NSSortDescriptor *sort = [NSSortDescriptor sort ...