桌布排版是什么 桌布排版是什么工艺
本文目录一览:
1、微博页面排版变成这样乱七八糟,怎么弄回来啊 哪位大神知道原因
- 2、优秀海报作品赏析与分析是什么?
3、iPhone透明组件是什么 苹果透明组件设置方法
- 4、一个手帐小白的自述——把美好事物装进手帐里
- 5、如何建立母版页
微博页面排版变成这样乱七八糟,怎么弄回来啊 哪位大神知道原因
微博页面排版变成这样乱七八糟,怎么弄回来啊 哪位大神知道原因
网路原因吧,重启一下电脑,或者浏览器的问题
哪位大神知道怎么弄回来啊
在萤幕下方右键属性,取消锁定,用滑鼠拖动就可以了
新浪微博页面排版变的乱七八糟的,怎么回事啊!我是火狐浏览器
是浏览器和网站不相容造成的;
一般选择怎么样的浏览器:如果是相容问题,建议选择IE。chorme或者360,firefox的前端除错能力好,但是相容性不强
其他选择:新浪微博pc客户端
word文件变成这样怎么弄回来啊?
把滑鼠放到黑线处,双击
为什么变成这样啊?怎么弄回来啊
重灌系统试试
桌面图示变成这样怎么弄回来啊
您好
有日子没回答问题了……
进入正题:
右击我的电脑》属性》高阶效能》设定…》在“视觉效果选项卡”选中“调整为最佳外观”》应用确定。
怎么我的显示变成这样,哪位大神知道怎么调回来
滑鼠左键点住你的工作列空白处,随意拖动就可以了,到右边,下边,上边都可以的
桌面变成这样要怎么弄回来
你截个图下来给我们看看
如果你是要改桌面桌布的话 右键—属性—桌面选项卡—然后就可以改为你自己喜欢的桌面背景了(这是XP系统)
win7系统:右键—个性化—然后就可以改为你自己喜欢的桌面背景了
我们也不知道你是说桌面的哪方面 所以就····
我的桌面图示变成这样 怎么弄回来啊
可以尝试以下几种方法:
1、右击桌面/排列图示/将“在桌面上锁定定Web专案”前的勾去掉。
2、右击我的电脑/属性/高阶/效能中的设定/在视觉效果的下拉列表中勾选“在桌面上为图示标签使用阴影”,然后按应用确定即可。
3、如果故障依旧,可尝试下面的方法。右击桌面空白处,依次单击“属性/桌面/自定义桌面/web”选项,将“网页”栏中的“当前主页”以及“……”等所有各项前面的勾全部去掉(“……”为从Inter新增网页或图片的地址,一般不需要,可将它们全部删除),并将下面“锁定桌面专案”前面的勾也去掉,单击确定完成设定。
4、另外有一种情况就是安装了某种程式之后(比如系统提示:是否将该Active Desk项新增到您的桌面上),桌面文字变的不透明。在“执行”中输入“gpedit.msc”,开启组策略;在“使用者配置→管理模板→桌面→Active Desk”中,点 启用Active Desk(活动桌面)然后点选“属性”选定“已禁用”,点禁用Active Desk (活动桌面)“属性”选定“已启用”按确定重启电脑试试。
5、如果故障依旧,还原一下系统或重灌。
为什么会变成这样 怎么弄回来啊
你近的是QQ邮箱手机版啊,改进网页版的。
优秀海报作品赏析与分析是什么?
1、主题比较突出,容易抓住人的目光,卒展二字采用类似桌布的格子形式,很有设计感,色彩搭配很好看,“卒”字为玫红色搭配蓝色;“展”字为绿色、蓝色、深蓝色、紫色。
2、内文的排版使用了三种颜色,比单独使用黑色会更丰富一些,而且内文的颜色还可以与主题文字的颜色形成呼应。
3、采用居中构图,主题文字把内文分开左右两部分,相对来说没有把所有内文排在一边那么乏味、单调,如果版面中的文字比较多可以采用这种构图形式。
4、海报中的信息呈段落式紧凑排列,并严格控制了视觉块,不会显得画面太花太乱。
优秀海报分析
1、把矩形框变形成一定的透视,与人物的脸部形成前后的穿插关系,加强了画面的空间感、形式感以及视觉冲击力。
2、三个矩形框的大小相近、平行分布,形成一定的节奏感,但这三个框的质感又截然不同,使得这三个框呈现出既统一又有对比的效果,层次感得到了加强。
3、矩形框上的文字间距和行距都很大,且搭配了一些小元素,并与矩形框的透视形成统一,这么形排既不会大面积遮挡画面,且节奏感和装饰效果很好。
iPhone透明组件是什么 苹果透明组件设置方法
在iPhone是不是有看到那种可以显示时钟、日期、电量等透明组件?那么这个组件叫什么?又要如何进行设置呢?下面就来教大家。
1. iPhone屏幕桌布截图
首先撷取一张iPhone透明背景桌布,先长按主画面不放,进入抖动编辑状态,直接滑到最后一页,再往左滑动就会出现完全没有 App 图示,就可以利用iPhone快捷键截取画面。
2. 设定iPhone透明桌布背景
下载“Top widgets”图片小组件 App 。
ps:直接到App Store下载即可
打开 Top widgets App 点选“透明小组件”,如果iPhone有设定自动变换深浅色,可以将“iOS深浅色外观2种截图”功能打开,分别设定iPhone浅色截图和深色截图,替换刚撷取的桌布。
3. 新增透明桌布小工具 Top Widgets
当设定iPhone透明背景后,可以回到“Top Widgets”App 首页,里面有大量不同类型的小工具可用,像是系统工具(X-面板)、照片、日历、到数日等,挑选想要摆放的透明小工具。
以 X-面板为例子,选择后就可以自订主体颜色、边框颜色和位置,甚至可以将小工具改为“透明”背景,全设定完成后,点下“保存到我的组件”。
4. 替 iOS桌面新增透明小工具
再来要将 Top Widgets 小工具放在桌面上,直接长按iPhone桌面不放,点选左上角“加号”,从小工具清单内找到“Top Widgets”万能工具组。
选择刚设定的尺寸(可左右滑动选择),按下“加入小工具”就能将 Top Widgets 放到iPhone桌面上;此时会发现小工具无法显示资讯该怎么办?直接压住小工具不放,选择“编辑小工具”。
就能编辑 Top Widgets 小工具,点选要载入哪个组件面板和透明位置,要注意位置要对应摆放的位置,才能够刚好符合 iPhone 背景,就可以看见桌面呈现透明效果。
5. 完成iPhone透明小工具桌布
依序自己喜好,将多个透明小工具加入 iPhone 桌面后,就会发现整个桌面空间变得更乾净,不会像是之前会有一个个区块颜色覆盖,这部分就可以依照自己喜好进行排版。
当然也可以替换比较简单的iPhone桌布,并且搭配适合的小工具和颜色,就能够实现iPhone透明桌布效果。
另外 Top Widgets 小工具也可以自订更换透明字体和颜色,只要点一下组件,就能立即进行修改,这款 App 相信对于喜爱美化的你会很有帮助。
看完以上教学后,是否感觉要制作iPhone透明桌布其实非常简单,不需要太过于复杂的技巧,直接点几下就能制作出超透明又好看的桌布效果。
一个手帐小白的自述——把美好事物装进手帐里
首先声明,我只是个手帐小白,如果你的手帐已入坑或者是手帐大神,可能不需要听我的手帐分享。
但我的分享里不只有手帐哦,关于练字,关于瑜伽,关于写作,关于时间管理,关于有趣的生活,你想要的,我都有。
那为什么我会做一个以手帐为主题的分享会呢?这要源于我的好友羊达令的邀请。当我收到她向我发出做的手帐分享邀请时,我其实很诧异的,因为我真的只是个小白,手帐做得也很一般。
但是我知道,还有很多人从未接触过手帐,甚至不知道什么是手帐。怀着想把美好事物传递给大家的初心,以及达令的鼓励,我接受了这个邀请。
就当做一个小挑战。况且今年的梦想清单里就有公开做一次分享这一条,就从这儿开始吧。 所有的伟大都源于一个勇敢的开始,也许我无法成就伟大的梦想,但我需要一个勇敢的开始。
也希望以此作为勉励,鼓励自己成为更美好的自己。当然作为手帐小白,我能分享的就是我自己的经验,自己的感受,以及我自己总结的一些小技巧。今天的分享除了手帐,也还会有些其他的内容,如果你能听到最后,那将是我的荣幸。
首先是手帐部分:
如果你是个对生活充满热爱,且喜欢一切美好事物的人,你一定要尝试一下手帐。它一定会给你带来前所未有的美好。
有人可能会说,“我是个手残党,我不会画画,不会做手工,可以做手账吗?”
那我会告诉你,其实并没有真正的手残党,只有自以为是手残党的人。我们常常给自己各种各样的限制,觉得自己这个也做不好,那个也做不好。于是我们给自己冠上各种“头衔”以自嘲。既显得自谦,又不失面子。
但你一旦给自己扣上这样的帽子,那你就永远只能是个“手残党”了。我不希望你们有这样的想法,不希望你给自己设限。
打破自己的框架,勇敢来尝试吧!你会发现自己没有什么不可以的!
我希望你是个勇于尝试新事物,敢于突破自己的人。这也是我为什么不先给大家介绍什么是手帐的原因。我希望你不要被那些看似很难,看起来与自己不找边际的事物打倒。
你的人生还有很多可能性,你总要去尝试,才知道自己更喜欢什么,更适合什么。
我相信来听我啰嗦的你们都是热爱生活的人,所以我期待你们也能遇见手帐的美好。
手帐的专业名词是县民记事本(POCKET NOTEBOOK),日语称作县民手帐,简称手帐,日本独特的畅销品。县民记事本由日本各县的统计协会和县政府发行,包含诸多方面的内容,是名副其实的“多功能日程管理手册”。(来自百度百科)
听起来好像很复杂,其实手帐,就是指用于记事的本子。它最初源于日本,经常看日剧的人也许会关注到,日本人很喜欢在一个小本子上写写画画,那就是手帐。(日剧《家族的形式》《单身女的圣诞节》《有喜欢的人》《Legal High》《毫不保留的爱》《我的危险妻子》)
手帐大都制作精美,带有日历和笔,可以夹些名片和纸片,不同的页面划分具有超强的整理功能,以满足不同类型的需要,比如主妇专用手帐有专门的地方可供粘贴发票,记录收支,帮助她们精打细算地过日子。
手帐不仅能提醒自己记着家人、朋友的生日和约会,还能安排每天的工作,很多人甚至把它当做简短的日记本。
以上介绍来自于百度知道,大家随意搜一搜可以了解得更细致。我个人把它简而言之就是 【创意笔记本】
手账不仅仅只是简单的写字画画,更是为了记录美好的生活,生活的管理和规划也好,情感的记录也罢,手账承载的是对生活的记忆,以及对美好未来的憧憬。
所以我说如果你是个热爱生活的人,一定要来来体验手帐的乐趣哦!
手帐的种类有很多,根据功能的不同可以分为:
1.日记型
2.日程表型(待办事务)
3.账本型
4.笔记型(读书笔记,电影,音乐)
5.旅行手册型
6.收集型(各种票根、票据,以拼贴为主)
做一本精美的手账本需要写写画画剪剪贴贴,那么你可能需要以下物品:
1.手帐本: 形式多样,大小不一,可空白,可线格,可方格,总之挑自己喜欢的吧!
有些手帐本已经规划好功能区,你可以在上面写上内容。
有些手账本则需要自己进行排版设计,划分功能区。
我个人喜欢买空白本,创作空间更大!
推荐牌子:国誉,Hobo,Kinbor,Moleskine,Filofax,Leuchtturm1917。夏七酱的手账本,可以画水彩画。
至于具体买什么样的手帐则根据自己的需求和经济能力来决定。建议新手不用买太贵的,太贵的本子你会因为自己的字丑,手残,而闲置他们的。可以去名创优品或者无印良品先买一些平价的本子来做练习,这样画坏了也不心疼呀!
2.笔: 各种颜色的中性笔,水彩笔,彩铅,钢笔,还可以用到各色彩墨,水彩则需要用到各色颜料。
笔可以随性购买,晨光的一些彩色中性笔也挺不错的。我平常会去文具店逛一逛,看到喜欢的,好写的就会带回家。
推荐:百乐彩色果汁签字笔,kaco玫瑰金钢笔等
3.胶带和贴纸: 这是手帐达人必备的道具,也是手残星人的福利。不会写艺术字,不会画画的小伙伴就可以直接贴贴贴!胶带和贴纸网上随便一搜就有各种选择,有需要的可以加我,我可以给大家推荐便宜大碗的贴纸。
推荐:卓大王,晨光(小王子),故宫的胶带,mood和纸胶带,小径 × 夏米花园,兔子家欧美复古系列,eksman,考拉拉工作室 • 旧闻,陌墨
4.印章,蕾丝花边,压花器等各种附件: 这些都是根据自己的需要再进行,不是必备物品。
5.拍照道具: 为了拍照美美的,你可能还需要漂亮的桌布,夹子,各种摆拍小道具……
总之手帐是一个大坑,入坑之后你会中毒一样的什么都想买买买!!!但是建议新手们不要一昧地买买买,适当地买一些来入门。
对我来说,手帐最大的乐趣还是可以自己动手写写画画。不要怕画得不好看,写得不好看,谁都是从一开始的不好看开始的呀!
①加强自我管理,时间管理,提高自己的执行力。
②记录生活,让自己的每一天有迹可循。
③最重要的是,做手帐可以愉悦心情呀!
①要有基本的审美:和拍照同理,想拍出好看的照片,得了解什么样的照片好看。
多去欣赏别人的作品,前期多模仿多学习,后期就可以自己创作!
推荐:公众号:手帐研究室。
微博上搜索手帐会出现一大波手帐达人,可以适当关注,尽量关注自己喜欢的风格,不要杂七杂八关注一堆。
哔哩哔哩上也有一些博主的视频可以观看,边看边学。
②专业的事交给专业的人:
如果只是自娱自乐,三分钟热度,想做就做,不想做就不做,或者主要靠拼贴排版来写手帐,那么关注博主,看看视频,学着去做就可以。
如果你也想成为手帐达人,那么最好的方法就是花点钱去学。比如相较于拼贴,我更喜欢自己手绘,我就会去报一些手绘的课程,去好好提升自己绘画技能。最近我就报了夏七酱的水彩画,她的画风是我很喜欢的,还有邓瑞宁画水彩(微博号)也是我喜欢的博主。
我打算暑假的时候去参加线下的课程,这样更能提高自己的水平。
能花钱解决的事,千万不要花时间
如何建立母版页
母版页是用来是同一系列的网页具有抑制外观的工具,使用ASP.NET母版页可以为我们的应用程序中的页面创建一致的布局。在这种技巧中,网页被分为两类,描述一致性外观的网页称作母版页(Maste Page),引用母版页的网页我们叫做内容页(Content Page)。
主题和皮肤的运用可以使应用程序开发者能够把样式和布局信息存放到一组独立的文件之中,这组文件总称为主题(Theme)。主题可以独立于应用程序的页,为页面,包括控件等提供统一的样式设置。
主题的优点:主题可以使得我们在开发应用程序时可以先不考虑样式,在以后要进行样式应用时,也无需更新或更改代码。主题独立于Web应用程序,对它的维护极为方便。
一、母版页
母版页是ASP.NET控件中非常有特色的一类,可以通过它为整个应用程序提供统一的布局。下面我们来学习一下母版页的相关知识,通过学习掌握母版页的基本创建和使用方法,以及复杂一些的母版页的嵌套使用、母版页同主题的自动切换和调用。
1.认识母版页
首先,我们一进入母版页的学习,一定要时刻记住页面从此分为两部分,即母版页本身和使用某个母版页的内容页。
母版页可以使开发者创建统一的站点模板和指定的可编辑区域。母版页中可编缉区域或通过ContentPlaceHolder控件显示。一个母版页中可以包含一个或多个ContentPlaceHolder控件,该控件在内容页中显示为Content控件。
ContentPlaceHolder控件以外的内容在调用该母版页的页面中显示为灰色,因为在编辑内容页时不能更改这些内容。这样一来,我们在内容页中实际上只是对在母版页中所指定的可编辑区域里根据实际需要填充内容。这也就是说,内容页的内容是来源于两个部分,一个是内容页本身不可编辑的区域,这个区域在我们为内容页指定母版页时其实已经由母版页中的内容来充填了,另一部分内容是内容页自己的,他们都在母版页所划分的可编辑区域内。
打个比喻,我们的餐桌桌面就是我们的网页,那么我们现在要给桌面上摆放一些图案和元素,我们可以选择我们所喜欢的桌布铺在上面,那里面有我们喜欢的图案和元素,比如说蓝色的盒子,白色的小猫。我们把桌布挖个窟窿,这样我们在铺桌布后再往桌面上摆放东西时,其实只能是摆放在窟窿内。注意,我们规定桌布上不能摆放物品,以免弄脏桌布。
1.1 创建母版页
下面我们来具体创建一个母版页。通过创建这个简单的母版页来掌握和理解母版页的基本结构和用法。创建一个母版页其实非常简单,我们只需要按照下面的步骤进行就可以了。
(1)打开VS2008,创建一个新项目。
(2)右击“解决方案资源管理器”中的项目名称,在弹出的快捷菜单中单击“添加新项”命令,弹出“添加新项”窗口。
(3)在 “添加新项”窗口中选择“母版页”选项,给你要创建的母版页起一个即合适又有意义的名字(记得,对于项目来说,命名对于后期的维护和识别很重要),母版页名字的后缀一定是“.master”,这是规定的。
(4)单击“添加”按钮,然后就完成了母版页的创建,接下来就可以对所添加的母版页进行设计了。设计方法和我们设计页面方法完全相同,因为母版页其实和页面一样,都可以看作是一张白纸。只是母版页中多了ContentPlaceHolder控件,即可编辑区域。
下面我们来看一下通过上述步骤创建的母版页,它包含一个.master的文件和它对应的.master.cs文件(看上去和页面的确是很相似)。我们再来看一下我们创建的.master文件的代码:
%@MasterLanguage=“C#“AutoEventWireup=“true”CodeFile=“MasterPageTestOne.master.cs”Inherits=“MasterPageTestOne”%
!DOCTYPEhtmlPUBLIC”-//W3C//DTDXHTML 1.0 Transitional//EN”“”
htmlxmlns=“”
headrunat=“server”
title无标题页/title
asp:ContentPlaceHolderid=“head”runat=“server”
/asp:ContentPlaceHolder
/head
body
formid=“form1”runat=“server”
div
asp:ContentPlaceHolderid=“ContentPlaceHolder1”runat=“server”
/asp:ContentPlaceHolder
/div
/form
/body
/html
我们可以看到代码里只是多了两个ContentPlaceHolder控件,这其实是留给内容页的可编辑区域,也就是我们桌布的窟窿。下面我们来设计我们的母版页,往里面放一些东西,也就是开始喷涂我们的桌布。我们添加几个超链接。
%@MasterLanguage=“C#“AutoEventWireup=“true”CodeFile=“MasterPageTestOne.master.cs”Inherits=“MasterPageTestOne”%
!DOCTYPEhtmlPUBLIC”-//W3C//DTDXHTML 1.0 Transitional//EN”“”
htmlxmlns=“”
headrunat=“server”
title无标题页/title
asp:ContentPlaceHolderid=“head”runat=“server”
/asp:ContentPlaceHolder
/head
body
formid=“form1”runat=“server”
div
asp:HyperLinkID=“hyperLink1”runat=“server”首页/asp:HyperLink
asp:HyperLinkID=“hyperLink2”runat=“server”资源/asp:HyperLink
asp:HyperLinkID=“hyperLink3”runat=“server”作业/asp:HyperLink
asp:HyperLinkID=“hyperLink4”runat=“server”实验/asp:HyperLink
asp:HyperLinkID=“hyperLink5”runat=“server”考核/asp:HyperLink
asp:HyperLinkID=“hyperLink6”runat=“server”交流/asp:HyperLink
asp:ContentPlaceHolderid=“ContentPlaceHolder1”runat=“server”
/asp:ContentPlaceHolder
/div
/form
/body
/html
这里我将代码全部粘贴是为了让大家看一下我们在设计内容页即喷涂桌布时元素所在的位置,不能将其放置在窟窿(内容页的可编辑区域)里,这一点是理所当然的,因为那是留给桌面(内容页)的。这里给后面的复杂操作打下一个伏笔,提前唠叨一个事情。我们在母版页里放置的元素,其对应的一些事件的处理我也要放置在母版页里进行响应。我们还需要注意,内容页的里的元素事件的处理要放在内容页里,母版页是管不了那么多的,各顾各,各扫各家门前雪。
我们点击编辑器的设计视图,这时我们已经可以看到我们在页面上放置的元素了,但是我们现在还不能在浏览器里查看它。你可以右键点击解决方案资源管理器中的该母版页,你会发现没有在浏览器中查看这一菜单项,而我们的窗体文件是有的,这是为什么呢?因为我们只是创建了母版页,还没有给它指定内容页。我们在浏览器里能看到的只是内容页,而母版页在被引用时其实只不过是相当于网页里的一个控件而已,你怎么可以在浏览器里去查看一个控件呢?那是看网页的。:)
好的,既然我们到目前为止还看不到它,那么现在我们就来看到它。看到它其实不难,只需要为它指定一个内容页就可以了。具体的步骤是:
(1)右击“解决方案资源管理器”中的项目名称,在弹出的快捷菜单中单击“添加新项”命令,弹出“添加新项”窗口。
这样,我们就完成了一个内容页的创建,我们现在去浏览器里看看吧,嗯,是的,你可以在浏览器里看到你之前的母版页里的东西了。这是什么意思呢?这就相当于我们在桌面的正上方拜访了摄像机(浏览器),你喷涂桌布的时候很可能是在哪个彩绘工厂,而你只有把喷涂好的桌布拿回家放到桌面上的时候,你才可以通过你的摄像机拍到它。当然,一定要记得,我们的桌布是带窟窿的,为了怕弄脏,喷涂一次很贵的,以后的盘子、碗都得放到桌面上不能放到桌布上。
这里,我要跟大家说另外一个事情,我们在做项目的时候,个人有个人的喜好。我通常是上来就先创建一个Test.aspx页面,用来试验和该写代码的。这对于初步学习的孩子来说是个很好的习惯,我们尽量不要在我们的项目文件里进行尝试,把一切可能的麻烦化解于无形吧,把所有的尝试和实验通通扔到Test.aspx中去,这一点对于初学者是个很好的建议。
我们现在来看看我们添加的内容页里的代码是什么样子的。
%@PageLanguage=“C#“MasterPageFile=”/MasterPageTestOne.master”AutoEventWireup=“true”CodeFile=“Default2.aspx.cs”Inherits=“Default2”Title=“无标题页”%
asp:ContentID=“Content1”ContentPlaceHolderID=“head”Runat=“Server”
/asp:Content
asp:ContentID=“Content2”ContentPlaceHolderID=“ContentPlaceHolder1”Runat=“Server”
/asp:Content
我们可以看到两件事情:
第一,它和我们创建的普通窗体文件的代码不一样,没有那些html的东西了;
第二,代码少的可怜,只有一个Page指令和两个Content控件了。
这是为什么呢?
第一个问题:html的那些东西哪儿去了?
第二个问题:这仅有的代码是干什么的?
其实,html的那些代码都在母版页里,我们之前说过,碰到母版页,传统的页面就被分为两个部分了,即母版页和内容页,因为它被分为两个部分,所以传统的页面的代码也一定是在这两个类型的文件内部,从而由这两个类型的文件拼接成原来的Web窗体,事实上,的确是这样的。那些html的代码都在母版页里。在内容页里只有通过Page指令所引用的母版页信息,同时,母版页里的ContentPlaceHolder控件(那两个窟窿)在内容页里被转换成了Content控件,其他的所有东西都在母版页里进行说明了,不能重复说明,所以内容页里的代码少的可怜。少不怕,少了更清晰,不是吗?我们可以自己添加我们的东西了。来,我们一起在内容页里添加一些东西吧。我们在设计窗体下随便打几个字吧,我们来看看随便打几个字后的代码:
%@PageLanguage=“C#“MasterPageFile=”/MasterPageTestOne.master”AutoEventWireup=“true”CodeFile=“Default2.aspx.cs”Inherits=“Default2”Title=“无标题页”%
asp:ContentID=“Content1”ContentPlaceHolderID=“head”Runat=“Server”
/asp:Content
asp:ContentID=“Content2”ContentPlaceHolderID=“ContentPlaceHolder1”Runat=“Server”
p我是内容页里的,我可不是母版页里的东西。/p
/asp:Content
我把这些代码都粘了过来,嗯,我们看明白了,我们现在的操作是在那个窟窿里进行的。那么顶上的那个ID为head的窟窿里怎么不写东西呢?你还记得吗?那个窟窿是在head/head里的,不是在body/body里的,当然,那个窟窿也是有它的作用的。我们可以在那个窟窿里做一些处理,就相当于我们做网页时有时要在head/head里写些东西一样,你需要用的时候就在那里写吧,放心的去涂鸦吧。相信我,没错的。
我们在设计视图下还会发现一件事情,只有在Content控件内是可编辑的,而在其他地方都不可编辑,这又是为什么呢?因为其他的地方都被桌布遮住了,你无法直接触碰到桌面,你非要碰,你所碰的也只可能是那个桌布,即回到内容页里去弄吧。
也许你们会问,我们按照你说的一路做下来,到现在,在浏览器里是看到了这些东西,可是,这些东西的字体什么的都没设置,很难看啊。呵呵,不要着急,我们现在只是在布局。这正是母版页、主题这些东西的好处,它们将这些工作彻底的分开了,我们以后会做的。暂时不要急着去设置,因为你现在进行的设置将会白费力气,你会发现如果你设置了,那么它将给你带来麻烦。这是做网页的一个趋势,也是现在做东西讲究的一个词“代码分离”的道理,其时后面你们在学习系统分析时所说的“解耦合”也跟这个思想差不多。你可以先自己设置一下试试看,没什么的,一切都是练习和学习,无所谓的,多尝试对你只有好处没有坏处。
我们继续学习。我们刚才说过母版页和内容页里的控件的事件响应是各顾各的,那么我们能不能在内容页里去控制母版页里的东西呢?其实是可以的。我们来试一下。(建议你在新建一个Test.master和Test.aspx吧,这对你尝试练习真的很有好处)
我们在母版页里再添加一个东西,添加一个Label吧,具体代码如下:
asp:LabelID=“label1”runat=“server”/asp:Label
你可以会问,你怎么没指定text属性?其实这可以啊,没问题,不需要在一开始显示为什么要指定呢,text只不过是个属性而已,我刚才在放置超链接控件时不是也没指定链接源吗?没问题的。
我们添加了上面的一行代码在母版页里后,接下来我们在内容页里放置一个按钮,我们现在想做这样一件事情,通过点击内容页里的按钮,让母版页里的label的text变为我工作室的名字,我们一点点来做。
我们在内容页里先放置一个按钮。你可以拖拽,也可以直接粘过去我下面的代码,效果是一样的。
asp:ButtonID=“button1”runat=“server”Text=“OK” /
好的,我们放置了我们的代码,我们现在可以双击这个按钮,为其添加事件代码了。双击后屏幕就会定位到对应的.aspx.cs文件中的如下代码内:
protectedvoidbutton1_Click(object sender, EventArgs e)
{
}
可别小瞧了你的双击,你点两下鼠标很随意,其实,编辑器后面为你做的工作还不只是添加了上面的代码,不信你回头看看你的.aspx文件,你刚才通过手写代码放置的那个button控件对应的代码改变了吧,现在编程了下面的样子,多了个它:onclick=“button1_Click”,对吧?改编后的那行代码是:
asp:ButtonID=“button1”runat=“server”Text=“OK”onclick=“button1_Click”/
呵呵,别怕,你又进步了,你发现了吗?如果你不双击,你只需要指定onclick属性,然后自己在.aspx.cs中去创建属性内对应名字的方法就可以玩转button了,你现在已经不需要每一次都只能必须双击按钮来添加事件处理方法了。好了,我们现在编写具体的方法体,别忘了我们要做的事情是什么?去改变母版页的label控件的Text属性。好的,我们做个处理。
protectedvoidbutton1_Click(object sender, EventArgs e)
{
Labellb1 = this.Master.FindControl(“label1”) asLabel;
lb1.Text = “小唐工作室”;
}
我们在button1_Click内加入了两行代码,下面我来说一下这两行代码。第二行没什么,我们指定了lb1的Text属性。那么第一行代码呢?第一行代码里我们通过Master类提供的一个方法FindControl来寻找我们指定的控件,因为其返回的是一个通用类型的控件,我们要想利用它,需要把FindControl返回的对象转化为相应的控件类型,通常是什么控件就转成什么类型,这样,我们就可以使用它了。
这里面还有一个问题。我们的lb1对象是在内容页里生命创建的啊,它和母版页里的label1不是一个啊,怎么改变了lb1.Text属性label1.Text就更改了呢?这好像不对吧。记得,我以前给你们讲C#数据类型时谈及到的引用类型的特点,它和值类型数据的区别吗?对,引用类型传递的是地址。这个地方如果还有问题,你就该去复习那节课的东西了,说明你还没过关。现在发现基础的重要性了吗?它看似简单,但是对于你去理解后面的万丈高楼至关重要!
同理,对于“objectsender, EventArgs e”的理解也很重要,我也已经讲过了,你们自己看一下我讲的事件和委托那一节的PPT吧。
好的,我们现在写完方法了,我们通过浏览器看一下效果吧。你的进步很快,只是要记得经常复习,明白只是学习的第一个层次,只是初级阶段而已。下面我们再举一反三,自己练习一下改变母版页里的其他的东西吧。注意引用类型数据和值类型数据的区别,切记!
2.母版页的嵌套
母版页可以嵌套,即让一个母版页引用另外的页作为其母版页。利用嵌套的母版页可以创建组件化的母版页。例如,我们可以通过它来实现一个大型站点的不同的子站点各自内容的子母版页,这些字母版页引用站点母版页,从而呈现出来我们要的效果。
子母版页的后缀也是.master,子母版页也有自己的内容占位符。
添加方法:新建一个母版页,勾选上“选择母版页复选框”,选择一个父母版页后点击确定,这时我们的子母版页已经有了。这时你会发现之前我们创建的母版页和其对应的内容页现在都进来了,而且很奇怪,新创建的母版页里代码变成了如下的样子:
%@MasterLanguage=“C#“MasterPageFile=”/MasterPageTestOne.master”AutoEventWireup=“false”CodeFile=“MasterPagesun.master.cs”Inherits=“MasterPagesun”%
asp:ContentID=“Content1”ContentPlaceHolderID=“head”Runat=“Server”
/asp:Content
asp:ContentID=“Content2”ContentPlaceHolderID=“ContentPlaceHolder1”Runat=“Server”
/asp:Content
乍一看上去就不是个内容页吗?呵呵,其实,可以这么理解。接下来我们在里面添加几行代码:
p子母版页的内容/p
asp:ContentPlaceHolderid=“ContentPlaceHolder2”runat=“server”
/asp:ContentPlaceHolder
p子母版页的内容/p
添加后代码变成为下面的样子:
%@MasterLanguage=“C#“MasterPageFile=”/MasterPageTestOne.master”AutoEventWireup=“false”CodeFile=“MasterPagesun.master.cs”Inherits=“MasterPagesun”%
asp:ContentID=“Content1”ContentPlaceHolderID=“head”Runat=“Server”
/asp:Content
asp:ContentID=“Content2”ContentPlaceHolderID=“ContentPlaceHolder1”Runat=“Server”
p子母版页的内容/p
asp:ContentPlaceHolderid=“ContentPlaceHolder2”runat=“server”
/asp:ContentPlaceHolder
p子母版页的内容/p
/asp:Content
现在我们来添加这个子母版页的内容页。方法同上面创建内容也一样,只是选择母版页时选择的是我们新建的子母版页。添加后我们新建的内容页的代码为:
%@PageLanguage=“C#“MasterPageFile=”~/MasterPagesun.master”AutoEventWireup=“true”CodeFile=“Default3.aspx.cs”Inherits=“Default3”Title=“无标题页”%
asp:ContentID=“Content1”ContentPlaceHolderID=“ContentPlaceHolder2”Runat=“Server”
/asp:Content
很神奇吧,我们之前写的ContentPlaceHolder2控件现在出现了。一切都没问题,哦,原来是这么回事。现在我们在这个内容页添加一行代码:
p子母版页内容页的内容/p
然后我们运行这个内容页,你看了吗?你已经看到了父母版页和子母版页包括子母版页对应的内容页的全部内容,也许你会问,那么引用父母版页的内容页哪去了呢?我要说的是,那是另一个页面啊,其实父母版页中的内容占位符已经被子母版页和其对应的子母版页的内容页的内容所充填,这跟父母版页的内容页毫无关系了。
到目前为止,你已经可以熟练地使用母版页了。现在我们来讲一点深一点点的东西。母版页不仅能够嵌套,可不可以动态切换呢?是可以的,但是这就得基于母版页的加载机制做文章了。
其实,母版页在加载时是通过page指令MasterPageFile属性来指定加载哪个母版页的。你现在回头看看我们之前创建母版页的内容页时是不是都是在这里指定母版页文件路径的,你看到了,是这样的。嗯,所以我们只能通过这里去做文章了。既然我们可以通过设置“MasterPageFile”属性来指定用哪个母版页,那么我们就可以通过改变它来达到我们要的动态切换的效果,这从理论上说是毫无问题的。但是,有一点点麻烦,这个麻烦就来自页面的生命周期,母版页的加载在页面的生命周期的事件里是在页面初始化之前进行的,还记得页面初始化伴随的事件是哪个吗?对,是Page_Init,那么页面初始化之前对应的事件是哪个呢?对,是Page_PreInit事件。所以,我们只能在“Page_PreInit”事件之中或之前设置MasterPageFile属性。可是,问题来了,在Page_PreInit事件或之前,当前页面包含的对象还没有被生成,是不能访问的,所以,如果想根据当前页面上某个控件的值动态切换母板页是做不到的,那么怎么办呢?我们能够做到的就是根据Session,或者QueryString等在页面打开之前已经赋值的变量来实现动态切换。这些我们暂时放下,了解一下即可。在以后学习的过程中会对Session和QueryString有更多的了解,有兴趣的同学也可以自己先查阅一下相关的资料。
哦,对了,我们创建项目时默认只给我们写了空的Page_Load,我们没看见Page_PreInit,但是我说过,这些事件都是在页面的生命周期里的,事实上你完全可以自己手动去写这个事件加入你想要的处理的,其他页面生命周期里的页面事件也是一样。
小唐
于蛇年三月初八