《Programming WPF》翻译 第5章 5.数据模板和样式

让我们想象一下我们想要实现TTT更有娱乐性的一个版本(这是大部分游戏中 最重要的特色)。例如,TTT的一种变体允许玩家每次只能占据3个格子,去除第 一步在下第四步的时候,去除第二步在下第五步的时候,,以此类推。为了实现 这个变体,我们需要保持对每一步按顺序跟踪——可以利用PlayMover类,如示 例5-20。

示例5-20

namespace TicTacToe {
  public class PlayerMove {
    private string playerName;
    public string PlayerName {
      get { return playerName; }
      set { playerName = value; }
    }

    private int moveNumber;
    public int MoveNumber {
      get { return moveNumber; }
      set { moveNumber = value; }
    }

    public PlayerMove(string playerName, int moveNumber) {
      this.playerName = playerName;
      this.moveNumber = moveNumber;
    }
  }
}

现在,取代以为每个按钮对象的内容使用一个简单的字符串,我们将用示例 5-20中的一个PlayMover实例鲜明显示这样的一个改动。

示例5-21

namespace TicTacToe {
  public partial class Window1 : Window {

    int moveNumber;

    void NewGame( ) {

      this.moveNumber = 0;
    }

    void cell_Click(object sender, RoutedEventArgs e) {

      // Set button content
      //button.Content = this.CurrentPlayer;
      button.Content =
        new PlayerMove(this.CurrentPlayer, ++this.moveNumber);

    }

  }
}

时间: 2024-08-30 20:09:36

《Programming WPF》翻译 第5章 5.数据模板和样式的相关文章

《Programming WPF》翻译 目录

原文:<Programming WPF>翻译 目录 注:第1.2章我只做了笔记,没有翻译,请大家阅读时注意. 还有就是,这本书的英文版本下载:[O'Reilly] Programming Windows Presentation Foundation (2005) - BBL 以下是这本书的目录: 1.Hello, WPF     1.1 WPF from Scratch 基础     1.2 Navigation 导航     1.3 属性元素     1.4 布局     1.6 数据绑定

Hadoop专业解决方案-第1章 大数据和Hadoop生态圈

一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop生态圈小组已经翻译完成,在此对:译者:贾艳成 QQ:496830205 表示感谢. 二.意见征集: 本章节由<Hadoop专业解决方案群:313702010>翻译小组完成,为小组校验稿,已经通过小组内部校验通过,特此面向网络征集意见,如果对本章节内容有任何异议,请在评论中加以说明,说明时,请标明行号,也可以以修订的方式,发送

《Programming WPF》翻译 第4章 6.我们进行到哪里了?

根本上讲,数据绑定是关于在一个地方保持数据,例如,在另一个地方,一 个控件的属性,在数据上同步一个对象的属性.在这一章,我们从深度和广度上 遍历了数据绑定引擎这一基础概念,以及大量牵连到的,包括基于对象和XML数 据格式的条目和列表,基于数据目标的条目和列表,管理当前项,值的转换,排 序,过滤,数据模板,甚至主从页面的关系. 在WPF的每一层对数据绑定的彻底支持,使之成为优秀的样式,在某种程度上 数据绑定并不像以往那样.你会发现它已经渗透到WPF程序中的方方面面,包括 样式,这将是下一章的主题.

《Programming WPF》翻译 第5章 7.控件模板

如果仔细的看我们当前的TTT游戏,会发现Button对象并没有完全为我们工作 .哪些TTT面板有内圆角? 图5-14 这里,我们真正需要的是能够保持按钮的行为,如支持内容和点击事件,但 是我们想要接管这些按钮的外观.WPF允许这种方式,因为内在的控件创建的时 候是缺少外观性的,例如,他们提供行为,但是外观可以被完全包装在客户端控 件的外面. 还记得我们是如何使用数据模板,来为非可视化对象提供外观的么?我们能 够使用控件模板对控件做同样的事情,这将是一组StoryBoard,触发器,以及大 多数重

《Programming WPF》翻译 第9章 5.默认可视化

虽然为控件提供一个自定义外观的能力是有用的,开发者应该能够使用一个控件而不用必须提供自定 义可视化.这个控件应该正好工作,当以它最直接的方式使用时.这意味着控件应该提供一组默认的值. 这些默认的可视化存储在组件的二进制资源中,使用的源文件为theme"generic.xaml.如果你在 Visual Studio 2005中创建了一个WPF 控件库的工程,这将自动添加这个文件到你的工程中,并且设置它 的Build Action为作为资源内嵌.(参见第6章获取更多关于如何在组件中编译xaml资源的

《Programming WPF》翻译 第6章 前言

WPF为我们架构一个应用程序的用户界面提供了相当大的弹性.但是,功能越 强大,需要注意的就越多.我们必须避免使用户迷失在不协调而且过分装饰的前 端.一个应用程序的用户界面应该是内在协调的,而且,应用程序之间不光区别 在视觉化上,更多的是,对于用户所选择的操作系统的视觉主题,在感观上都是 一致的. 在上章,我们已经看到样式和模板是如何允许我们控制应用程序的外观.这 些都是基于WPF的资源(Resource),从而使得创建一个在视觉上一致得应用程 序更加容易,而且这样做不会牺牲弹性.如果你想要创建一

《Programming WPF》翻译 第5章 8.我们进行到哪里了?

样式支持你定义一个策略来设置可视化元素的依赖属性.属性的设置可以被 命名以及手动或者编程方式地通过名称应用,或者使用元素类型样式来自动应用 .除了提供不变的依赖属性值之外,样式可以包含基于条件的属性值--基于依 赖属性,数据属性或者事件.还有,如果设置属性并不足以获取到你寻求的外观 ,你可以替换一个非可视化的控件,使用控件模板生成全部的控件行为. 但这并不是样式的全部.要了解动画是如何工作的,你可以阅读第8章:要了 解样式是如何关联到资源和主题以及皮肤的,你可以阅读第6章.

输入验证-通过 WPF 强制执行复杂的业务数据规则

Microsoft Windows Presentation Foundation (WPF) 具有一个丰富数据绑定系统.除了作为通过 Model-View-ViewModel (MVVM) 模式从支持逻辑和数据对 UI 定义进行松散耦合的关键推动力之外,数据绑定系统还为业务数据验证方案提供强大而灵活的支持.WPF 中的数据绑定机制包括多个选项,可用于在创建可编辑视图时评估输入数据的有效性.此外,通过针对控件的 WPF 模板和样式功能,您可以轻松地自定义向用户指示验证错误的方式. 为了支持复杂规

WPF中xaml与xml交换数据时设计器中有数据,但运行后没有,为什么额?

问题描述 WPF中xaml与xml交换数据时设计器中有数据,但运行后没有,为什么额? 4C 在项目中创建了一个新的窗口叫window1然后在母窗口的cs文件中设置button按钮点击事件: window1 mywin = new window1(); mywin.show(); 在window1的xaml中绑定了当前目录的一个xml文件,设计器上可以看到绑定之后的数据,但是一旦运行之后,点击button按钮,出现window1的界面就会没有那些绑定的数据,敢问这是怎么回事呢? 谢谢: 其实就是设