《Programming WPF》翻译 第5章 1.不使用样式

作为一个样式如何使其在WPF使用的例子,,让我们看一下TTT简单的实现, 如示例5-1。

示例5-1

<!-- Window1.xaml -->
<Window
    x:Class="TicTacToe.Window1"
    xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
    xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
    Text="TicTacToe">
  <!-- the black background lets the tic-tac-toe -->
  <!-- crosshatch come through on the margins -->
  <Grid Background="Black">
    <Grid.RowDefinitions>
      <RowDefinition />
      <RowDefinition />
      <RowDefinition />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
      <ColumnDefinition />
      <ColumnDefinition />
      <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Button Margin="0,0,2,2" Grid.Row="0" Grid.Column="0" x:Name="cell00" />
    <Button Margin="2,0,2,2" Grid.Row="0" Grid.Column="1" x:Name="cell01" />
    <Button Margin="2,0,0,2" Grid.Row="0" Grid.Column="2" x:Name="cell02" />
    <Button Margin="0,2,2,2" Grid.Row="1" Grid.Column="0" x:Name="cell10" />
    <Button Margin="2,2,2,2" Grid.Row="1" Grid.Column="1" x:Name="cell11" />
    <Button Margin="2,2,0,2" Grid.Row="1" Grid.Column="2" x:Name="cell12" />
    <Button Margin="0,2,2,0" Grid.Row="2" Grid.Column="0" x:Name="cell20" />
    <Button Margin="2,2,2,0" Grid.Row="2" Grid.Column="1" x:Name="cell21" />
    <Button Margin="2,2,0,0" Grid.Row="2" Grid.Column="2" x:Name="cell22" />
  </Grid>
</Window>

时间: 2025-01-26 15:47:54

《Programming WPF》翻译 第5章 1.不使用样式的相关文章

《Programming WPF》翻译 第6章 2.资源与样式

WPF的样式机制以来于资源体系来定位样式.正如你在第5章看到的,样式在 元素的资源片段中定义,而且样式通过其名字被引用,正如示例6-18所示: 示例6-18 <Window x:Class="ResourcePlay.Window1" Text="ResourcePlay" xmlns="http://schemas.microsoft.com/winfx/avalon/2005" xmlns:x="http://schemas.

《Programming WPF》翻译 第5章 2.内嵌样式

每一个"可样式化"的WPF元素都有一个Style属性,可以在内部设置这个属 性--使用XAML属性-元素的语法(在第一章讨论的),如示例5-4. 示例5-4 <Button x:Name="cell00" /> <Button.Style> <Style> <Setter Property="Button.FontSize" Value="32" /> <Setter Pr

《Programming WPF》翻译 第5章 4.元素类型样式

命名样式非常有用,当你得到一组属性并应用到特点的元素上.然而,如果 你想要应用一个统一的样式到所有确定元素类型的实例,设置TargetType而不用 一个Key,如示例5-16所示. 示例5-16 <!-- no Key --> <Style TargetType="{x:Type Button}"> <Setter Property="FontSize" Value="32" /> <Setter Pr

《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 数据绑定

《点睛:ActionScript3.0游戏互动编程》——第2章 融会贯通—大话图层样式与滤镜2.1 Photoshop图层样式初体验

第2章 融会贯通-大话图层样式与滤镜 Photoshop和Flash都是杰出的软件,前者静得从容,后者动得洒脱,它们以不同的方式诠释着计算机时代的艺术.下面我们就从Photoshop的图层样式开始我们的艺术创作之路吧! 2.1 Photoshop图层样式初体验 我们打开Photoshop CS5,新建一个尺寸为600*100(单位:像素)的空白文档,使用[横排文字工具]E:\desktop\AS3 Text Effects\snapshots\第4章\4.1\横排文字工具.tif在画布上拖出一个

WPF:DataTemplateSelector设置控件不同的样式

原文 WPF:DataTemplateSelector设置控件不同的样式 最近想实现这么个东西,一个ListBox, 里面的ListBoxItem可能是文本框.下拉框.日期选择控件等等. 很自然的想到了DataTemplateSelector,并且事先定义好各类DataTemplate以显示不同的控件. 先定义好各类资源     <Window.Resources>         <DataTemplate x:Key="textBox">          

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

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

《Programming WPF》翻译 第9章 4.模板

对一个自定义元素最后的设计考虑是,它是如何连接其可视化的.如果一个元素直接从 FrameworkElement中派生,这将会适当的生成它自己的可视化.(第7章描述了如何创建一个图形外观. )尤其是,如果你创建了一个元素,是为了提供一个特定的可视化表现,该元素应该完全控制这个可视化 是如何管理的,一旦你编写了一个控件,通常你不会将一个图形硬编码到里面. 记住,一个控件的工作是提供行为.可视化是由控件模板提供的.这种可视化是由控件模板提供的. 一个控件可能提供一组默认的可视化,而应允许这些可视化被替

《Programming WPF》翻译 第9章 2.选择一个基类

WPF提供了很多类,当创建一个自定义元素时,你可以从这些类中派生.图9-1显示了一组可能作为类 --可能是合适的基类,并且说明了他们之间的继承关系.注意到,这决不是完整的继承关系图,只是简 单的显示了一些你应该考虑的可能的基类. 无论你选择了哪一个基类,你的元素都会直接或间接地从FrameworkElement派生.这将提供routing事 件,高级属性处理,动画,数据绑定,外观上的支持,样式,以及逻辑树的集成. 派生于FrameworkElement并不是绝对的需要.第7章讨论了底层可视化图形