跟我一起学wpf(1)-布局
wpf常用的布局控件
Canvas,DockPanel,Grid,StackPanel,WrapPane
1 Canvas是常用的画布容器,里面可以包含多个比如之前我写的3D效果的动画,都是用Canvas作为载体
Canvas里有几个比较有用的方法
Canvas.SetLeft,Canvas.SetRight,Canvas.SetTop
与之相对的是Canvas.GetLeft之类
我最喜欢说一些不搭边的事儿,既然说到了坐标,我们就来更为详细的说一说坐标的事儿
<Window x:Class="StudyWpfWithMe.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="" Width="">
<Grid>
<Canvas Name="canvas" Background="LemonChiffon">
<TextBox Name="textBox" Width="" Height=""/>
</Canvas>
</Grid>
</Window>
你可以设置TextBox的位置,可以拖动,他会自动给你加一些属性
<Grid>
<Canvas Name="canvas" Background="LemonChiffon">
<TextBox Name="textBox" Width="" Height="" Canvas.Left="" Canvas.Top=""/>
</Canvas>
</Grid>
我们加入MoveMouse事件
private void Window_MouseMove(object sender, MouseEventArgs e)
{
var point=e.GetPosition(this);
var textPoint=e.GetPosition(textBox);
textBox.Text = string.Format("当前坐标是:{0},{1},textbox相对坐标是:{2},{3}", point.X, point.Y, textPoint.X, textPoint.Y);
}
这里
e.GetPosition(this)是鼠标相对于界面最左边,
e.GetPosition(textBox);是鼠标相对于textbox的位置,是相对位置,以textbox来计算的,这就是坐标,挺有意思的事儿
基本的Canvas的最常用的大概就是这些了
2 Grid
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Canvas Grid.Row="" Grid.Column="" Name="canvas" Background="LemonChiffon">
<TextBox Name="textBox" Width="" Height="" Canvas.Left="" Canvas.Top=""/>
</Canvas>
</Grid>
Grid更多用于布局和重写某个模板样式时候,基本就是定义rowdefinition和coulumndefinition然后在控件里设置row和column
就是这样些东西
源代码:
至于其他的三个,用的时候goole吧,没啥好说的
跟我一起学wpf(1)-布局的更多相关文章
- Wpf之布局
Wpf之布局 上一章大家有了自己的一个Hello World的wpf程序,今天咱们就一起走进WPF,一起来看看wpF的前台xaml这门语言的魅力. 写过web 的人都知道布局这个概念,在web中布局和 ...
- 从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator-更新至Prism7.1
原文:从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator-更新至Prism7.1 事件聚合器EventAggregator [7.1updated]除了app部分,没 ...
- 从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator?
原文:从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator? 从PRISM开始学WPF(一)WPF? 从PRISM开始学WPF(二)Prism? 从PRISM开始学WP ...
- WPF教程二:理解WPF的布局系统和常用的Panel布局
WPF的布局系统 了解元素的测量和排列方式是理解布局的第一步.在测量(measure)阶段容器遍历所有子元素,并询问子元素它们所期望的尺寸.在排列(arrange)阶段,容器在合适的位置放置子元素.理 ...
- WPF 之 布局(一)
WPF的布局控件都在 System.Windows.Controls.Panel 这个基类下面,使用 WPF提供的各种控件在WPF应用程序中界面进行布局,同时对各种子控件(如按钮.文本框,下拉框等)进 ...
- WPF简单布局 浅尝辄止
WPF的窗口只能包含一个元素,为了在WPF窗口中放置多个元素并创建更实用的用户界面,需要在窗口上放置一个容器,然后在容器中放置其它元素. 注意:造成这一限制的原因是window类继承自 ...
- WPF UI布局之概述
在线演示:http://v.youku.com/v_show/id_XNzA5NDk2Mjcy.html 清晰版视频+代码下载:http://115.com/lb/5lbeer0m9lad 一.简单介 ...
- WPF(布局)
WPF编程学习——布局 本文目录 1.布局简介 2.面板(Panel) 3.视图框(Viewbox) 4.滚动视图控件(ScrollViewer) 5.公共布局属性 1.布局简介 应用程序界面 ...
- 从PRISM开始学WPF,Prism7更新了什么
当时我在搬运Prism6.3的sample代码的时候,就是因为网上的资料太老旧,万万没想到这给自己挖了一个坑,因为我在做笔记的时候,prism已经在更新7.0了 现在已经是7.2了,(lll¬ω¬), ...
随机推荐
- Java面向对象--static关键字
- 【redis】4.spring boot集成redis,实现数据缓存
参考地址:https://spring.io/guides/gs/messaging-redis/ ================================================== ...
- 3.环境搭建-Hadoop(CDH)集群搭建
目录 目录 实验环境 安装 Hadoop 配置文件 在另外两台虚拟机上搭建hadoop 启动hdfs集群 启动yarn集群 本文主要是在上节CentOS集群基础上搭建Hadoop集群. 实验环境 Ha ...
- myeclipse2014破解
去年出现的struts2 bug问题,在过去的项目中一直没做调整,前段时间发现受到影响了.本想这个bug都已经这么长时间了,工具中的包应该也已经被替换了吧,于是下载了最新的myeclipse2014, ...
- Android_自己定义切换控件SwitchView
1.示意图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemltbzIwMTM=/font/5a6L5L2T/fontsize/400/fill/I0JB ...
- Odoo event
使用流程 建立活动 发布到网站 在线销售 订单确认,付款确认 注册.出席 建立活动 设置门票 确认并发布到网站 进入编辑模式,即可在线编辑活动 ...
- 有关C/C++指针的经典面试题(转)
参考一: 有关C/C++指针的经典面试题 0.预备知识,最基础的指针 其实最基础的指针也就应该如下面代码: int a; int* p=&a; 也就是说,声明了一个int变量a,然后声明一个i ...
- ftp的实现
ftp.h #define BUFSIZE 512#define CMDSIZE 64#define ARGSIZE 64#define PASSIVE_ON 0x1 struct ftpcmd{ c ...
- cas 单点登录(SSO)之中的一个: jasig cas-server 安装
cas 单点登录(SSO)实验之中的一个: jasig cas-server 安装 參考文章: http://my.oschina.net/indestiny/blog/200768#comments ...
- 使用HtmlUnit登录百度
环境 java 1.7 HtmlUnit 2.18 eclipse 4.4.2 maven 配置: <dependency> <groupId>net.sourceforge. ...