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)-布局的更多相关文章

  1. Wpf之布局

    Wpf之布局 上一章大家有了自己的一个Hello World的wpf程序,今天咱们就一起走进WPF,一起来看看wpF的前台xaml这门语言的魅力. 写过web 的人都知道布局这个概念,在web中布局和 ...

  2. 从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator-更新至Prism7.1

    原文:从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator-更新至Prism7.1 事件聚合器EventAggregator [7.1updated]除了app部分,没 ...

  3. 从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator?

    原文:从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator? 从PRISM开始学WPF(一)WPF? 从PRISM开始学WPF(二)Prism? 从PRISM开始学WP ...

  4. WPF教程二:理解WPF的布局系统和常用的Panel布局

    WPF的布局系统 了解元素的测量和排列方式是理解布局的第一步.在测量(measure)阶段容器遍历所有子元素,并询问子元素它们所期望的尺寸.在排列(arrange)阶段,容器在合适的位置放置子元素.理 ...

  5. WPF 之 布局(一)

    WPF的布局控件都在 System.Windows.Controls.Panel 这个基类下面,使用 WPF提供的各种控件在WPF应用程序中界面进行布局,同时对各种子控件(如按钮.文本框,下拉框等)进 ...

  6. WPF简单布局 浅尝辄止

            WPF的窗口只能包含一个元素,为了在WPF窗口中放置多个元素并创建更实用的用户界面,需要在窗口上放置一个容器,然后在容器中放置其它元素. 注意:造成这一限制的原因是window类继承自 ...

  7. WPF UI布局之概述

    在线演示:http://v.youku.com/v_show/id_XNzA5NDk2Mjcy.html 清晰版视频+代码下载:http://115.com/lb/5lbeer0m9lad 一.简单介 ...

  8. WPF(布局)

      WPF编程学习——布局   本文目录 1.布局简介 2.面板(Panel) 3.视图框(Viewbox) 4.滚动视图控件(ScrollViewer) 5.公共布局属性 1.布局简介 应用程序界面 ...

  9. 从PRISM开始学WPF,Prism7更新了什么

    当时我在搬运Prism6.3的sample代码的时候,就是因为网上的资料太老旧,万万没想到这给自己挖了一个坑,因为我在做笔记的时候,prism已经在更新7.0了 现在已经是7.2了,(lll¬ω¬), ...

随机推荐

  1. screen状态变Attached连接会话失败

    使用xshell远程登录主机,使用screen命令启动程序运行至后台,意外发现screen session的状态为Attached,使用命令screen -r <session-id>,提 ...

  2. pt-pmp :pt toolkit

    http://www.cnblogs.com/ivictor/p/6012183.html

  3. uitableview中文排序问题

    1,uitableview中涉及到排序的问题,查找资料后发现使用UILocalizedIndexedCollation可以很好处理中文和英文系统下中文的排序.而且如果第一个汉字首字母一样那么就会按照第 ...

  4. hdu 4300 Clairewd’s message(具体解释,扩展KMP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4300 Problem Description Clairewd is a member of FBI. ...

  5. Opencv 改进的外接矩形合并拼接方法

    上一篇中的方法存在的问题是矩形框不够精确,而且效果不能达到要求 这里使用凸包检测的方法,并将原来膨胀系数由20缩小到5,达到了更好的效果 效果图: 效果图: 代码: #include <open ...

  6. Linux包括hash_map和hash_set的not declared问题

    当在Linux下cpp文件包括hash_map或hash_set时.会出现"'hash_map' was not declared in this scope"问题. #inclu ...

  7. c语言-递推算法1

    递推算法之一:倒推法 1.一般分析思路: if 求解初始条件F1 then begin { 倒推 } 由题意(或递推关系)确定最终结果Fn; 求出倒推关系式Fi-1 =G(Fi ); i=n; { 从 ...

  8. php自定义错误

    function myErrorHandler ( $errno , $errstr , $errfile , $errline ) { if (!( error_reporting () & ...

  9. Django-select_related优化查询

    对于一对一字段(OneToOneField)和外键字段(ForeignKey),可以使用select_related 来对QuerySet进行优化. select_related 返回一个QueryS ...

  10. 转载---- 使用opencv源码自己编制android so库的过程

    http://blog.csdn.net/lantishua/article/details/21182965 工作需要,在Android上使用OpenCV.opencv当前的版本(2.4.8)已经有 ...