zoukankan      html  css  js  c++  java
  • 《Programming WPF》翻译 第3章 1.什么是控件

    对于一个应用程序而言,控件是搭建用户界面的积木。它们具备交互式的特征,例如文本框、按钮以及列表框。尽管如此,WPF还有点不寻常,在于其并不直接地依赖其外观。在自定义一个控件外观时,很多GUI框架要求设计人员编写一个自定义控件。在WPF中,这是不必要的:嵌入式内容和模板提供了简单而强有力的解决方案。仅当你所需要的控件,其行为在已有嵌套式控件中不存在时,才需要重新去开发。

    很多WPF用户界面元素并不是控件。例如一些形状:RectangleEllipse,它们不具有内在的行为,仅仅是一个外观。

    3-1示了如何将一个控件适合于一个程序。正如你所看到的,控件的可见部分,是由其模板提供的,而不是控件本身。这个控件并不完全分离于其外观,当然,控件使用这些外观向用户提供信息。此外,由于这些外观是用户所能看到的全部,所以它们将是任何用户输入的即时目标。这意味着虽然这些外观可以被替换,这些替换具备特定的职责。在控件与其外观之间存在一种契约方式。模板,用来替换控件的外观,其使用将在第5章讨论。

    3-1


    你可能熟悉MVCModel View Controller)概念。这是设计交互式系统的一种方式。以往,MVC已经有若干种阐释方式。但是广泛地说,它经常将设计拆分为:表示底层数据的对象(Model),展示数据的对象(View),管理用户输入以及管理View交互的对象(Controller)。

    尽管控件通过外观使其自身对用户可见,通过API(见图3-1左)使其服务对开发者有效。控件提供了命令这个概念,来提供其支持的操作。例如,一个文本框提供了剪切、复制和粘贴命令。控件提供了属性这个概念,从而提供了一种修改行为或外观的方式。当有重要情况发生时,例如接收到外界的输入,控件会激活Event。最后,一些功能通过Method对外暴露。要优先选择命令、属性和事件,因为它们易于在标记语言中使用而且被一些设计工具支持。尽管如此,仍然存在一些情况,这些控件要在后台代码中使用,方法这时候就是最合适的API表现形式。

    当然,开发人员和设计人员并不是仅有的使用控件的人。控件同时要响应用户,所以,让我们看一看,在WPF中,输入是如何被处理的。

  • 相关阅读:
    06 is和==的区别 encode()编码 decode()解码
    05 dic的增删改查 字典的嵌套 考试题dic.get()的相关使用
    03 编码 int ,bool,str的常用操作 主要讲str
    01 基本数据类型 变量 if语句
    04 列表的增删改查 常用方法 元祖 range
    02 while循环 格式化输出 运算符
    多校2 Harmonious Army hdu6598 网络流
    P3159 [CQOI2012]交换棋子 网络流
    P2172 [国家集训队]部落战争 最大流
    P2402 奶牛隐藏 网络流
  • 原文地址:https://www.cnblogs.com/Jax/p/1137318.html
Copyright © 2011-2022 走看看