在XAF的开发中,详细Detail 或组合DashBoard页面,需要使用 LayoutControl 进行控件排列,下面讲述如何通过写代码进行操作。

0、DevExpress 的布局控件(DevExpress.XtraLayout) LayoutControl  有一个配置参数类 OptionsView 用于控制显示。

用  LayoutControl.OptionsView    属性操作设置 settings (通过 OptionsView 类提供).  这些设置允许你能运行时 高亮 highlighting,  项目边线可见,控制外观等显示在 LayoutControl 内的东西。

1、XAF 帮助手册的提示:操作 Layout Control

        用

Layout Control  安排布局 View Items (来自 CompositeView.Items 集合)。

依靠 Layout Control,为每个 View Item产生一个新的 Layout Item 。 Layout Item 设置允许你修改 caption, caption visibility and alignment等, 设置 Item size ,size 约束, indents and 外观appearance 设置等。

另外,一个 Layout Item 含有 View Item's control (animation)。当然你不能描述这个 control 的尺寸, 锚定方式与位置。所有这些设置完全通过 Layout Item 进行管理。 你能设置 Layout Item's 尺寸size 为特定值 (用 BaseLayoutItem.Size 属性)。部分 Layout Item's 区域被 Item's caption, indents and borders 占用, 其它剩余区域由 Layout Item's control 占用。

注意:一些 controls 不支持 resizing - 例如 text box or check box。所以,对含有这些controls的 Layout Item设置尺寸 将没有效果,因为 control 有固定尺寸,虽然事实是 Layout Item 允许重新设定尺寸。

为了操纵 Layout Control 和它的 Layout Items,按下列步骤进行:

  • 创建一个 新 View Controller 在 WinForms 模块;
  • 调度 Designer 为新 Controller。因 Controller 必须被激活为 Dashboard Views 或者 Detail Views,设置 Controller 的 ViewController.TypeOfView 属性要求的 value(Dashboard 、Detail)。
  • 用 Properties 窗口,设置订购Subscribe 控制器 Controller.Activated 事件,
  • 代替自动生成的Activated 事件 handler ,用下列代码.

    private void LayoutController_Activated(object sender, EventArgs e)
{
View.ControlsCreated += new EventHandler(View_ControlsCreated);
}
  • 因为目标是自定义 Layout Control,你需要创建后直接地操作它,。最好的方式是响应当前 View 的 View.ControlsCreated 事件.

  • 实现 View.ControlsCreated 事件处理, 如下:
void View_ControlsCreated(object sender, EventArgs e) {
// 操纵当前 Detail View 
DetailView view = (DetailView)View;
// 操作 Detail View's Control 转型为 Layout Control 
DevExpress.XtraLayout.LayoutControl layoutControl =
((DevExpress.XtraLayout.LayoutControl)view.Control);
//自定义 LayoutControl 的设置参数
//操纵 Layout Control 的 Layout Items 
foreach (object obj in layoutControl.Items) {
if (obj is DevExpress.XtraLayout.LayoutControlItem) {
DevExpress.XtraLayout.LayoutControlItem layoutControlItem =
(DevExpress.XtraLayout.LayoutControlItem)obj;
//自定义 当前 LayoutItem's settings 
}
}
} 为编译上述代码,增加引用 DevExpress.XtraLayout.v16.1 assembly 在 WinForms 模块.

layout 的应用的更多相关文章

  1. 前端框架 EasyUI (2)页面布局 Layout

    在 Web 程序中,页面布局对应用程序的用户体验至关重要. 在一般的信息管理类的 Web 应用程序中,页面结构通常有一个主工作区,然后在工作区上下左右靠近边界的区域设置一些边栏,用于显示信息或放置一些 ...

  2. Android Studio分类整理res/Layout中的布局文件(创建子目录)

    res/layout中的布局文件太杂,没有层次感,受不了的我治好想办法解决这个问题. 前几天看博客说可以使用插件分组,可惜我没找到.知道看到另一篇博客时,才知道这个方法不能用了. 不能用插件,那就手动 ...

  3. 如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites]

    如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites] 一.布局页面介绍[Abo ...

  4. [Android]异步 layout inflation(翻译)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5829809.html 异步 layout inflation ...

  5. Express 4 handlebars 不使用layout写法

    Express 4 handlebars 不使用layout写法 Express node nodejs handlebars layout 最近刚开始学习使用nodejs. 使用express搭建了 ...

  6. Android在layout xml中使用include

    Android include与merge标签使用详解 - shuqiaoniu的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/shuqiaoniu/article ...

  7. Duilib源码分析(五)UI布局—Layout与各子控件

    接下来,继续分析duilib之UI布局Layout,目前提供的布局有:VerticalLayout.HorizontalLayout.TileLayout.TabLayout.ChildLayout分 ...

  8. compass reset和layout [Sass和compass学习笔记]

    reset 可以重置浏览器的的html的默认样式,因为各个浏览器对有些元素解析差别很大 通过重置样式可以让样式的浏览器兼容 更简单 使用方法简单 @import "compass/reset ...

  9. 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

  10. Qt And MFC UI Layout

    界面布局 起初,计算机的交互是通过输入的代码进行的, 慢慢的有了图形之后, 就开始了图形界面的交互. 目前来说还有语音交互, 视频交互等多媒体的交互. 不管哪一种交互, 最终在计算机的角度都是信号的输 ...

随机推荐

  1. Linux虚拟内存(swap)调优篇-“swappiness”,“vm.dirty_background_ratio”和“vm.dirty_ratio”

      Linux虚拟内存(swap)调优篇-“swappiness”,“vm.dirty_background_ratio”和“vm.dirty_ratio” 作者:尹正杰 版权声明:原创作品,谢绝转载 ...

  2. 【JS】JS格式化文件大小 单位:Bytes、KB、MB、GB

    输入一个表示文件大小的数字,自适应转换到KB,MB,GB 方法一:bytes自适应转换到KB,MB,GB /// <summary> /// 格式化文件大小的JS方法 /// </s ...

  3. SpringBoot笔记十三:引入webjar资源和国际化处理

    目录 什么是webjar 怎么使用webjar 国际化 新建国际化配置文件 配置配置文件 使用配置文件 我们先来看一个html,带有css的,我们就以这个为准来讲解. 资源可以去我网盘下载 链接:ht ...

  4. JVM jinfo命令(Java Configuration Info) 用法小结

    简介 jinfo是jdk自带的命令,可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数. 通常会先使用jps查看java进程的id,然后使用jinfo查看指定pid的jv ...

  5. ruby select 方法,可用于先查询结果后,再次用条件限制

    1. 用于条件过滤 @works=DworkPro.all.order(:work_type) @work_pro=@works.select{ |x| x.job_type == 7} 2. sel ...

  6. springBoot----aop--整合日志相关

    springBoot整合日志相关 1:新建log4j.properties文件 : log4j.properties: #log4j.rootLogger=CONSOLE,info,error,DEB ...

  7. java 的三种代理

    java的三种代理模式   1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作, ...

  8. Mcafee(麦咖啡) 无法升级的解决办法(威流验证)

    McAfee时会遇到更新失败的情况.为了解决这个问题,你需要做如下设置:1.“运行”>“dcomcnfg.exe”2.双击“组件服务>计算机>我的电脑”3.展开“DCOM配置”,打开 ...

  9. [Windows] [DLL] [动态链接库技术]

    cppblog.com 天空的博客 http://www.cppblog.com/API/archive/2011/03/10/141506.html cnblogs.com 吴秦的博客 http:/ ...

  10. sqlserver2012 offset分页

    select ID,UserName from user order by ID OFFSET (10 * (50-1)) ROW FETCH NEXT 10 rows only