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

命名样式非常有用,当你得到一组属性并应用到特点的元素上。然而,如果 你想要应用一个统一的样式到所有确定元素类型的实例,设置TargetType而不用 一个Key,如示例5-16所示。

示例5-16

<!-- no Key -->
<Style TargetType="{x:Type Button}">
  <Setter Property="FontSize" Value="32" />
  <Setter Property="FontWeight" Value="Bold" />
</Style>
<!-- no Key -->
<Style TargetType="{x:Type TextBlock}">
  <Setter Property="FontSize" Value="32" />
  <Setter Property="FontWeight" Value="Thin" />
  <Setter Property="Foreground" Value="White" />
  <Setter Property="HorizontalAlignment" Value="Center" />
</Style>

<Button Grid.Row="0" Grid.Column="0" x:ID="cell00" />

<TextBlock Grid.Row="5" Grid.ColumnSpan="5" x:ID="statusTextBlock" />

在示例5-16所示,我们已经得到了两种样式,一种是带有TargetType的 Button,没有key;另一种是带有TargetType的TextBlock,没有key。它们都以 同样的方式工作;当创建一个Button或TextBlock的实例而不用现实地设置Style 属性,它使用的样式将目标类型匹配到控件的类型。我们的元素类型样式返回了 我们的游戏如图5-4所示。

元素类型样式是便利的,无论何时你想要所有特定元素的实例共享一个外观 ,依赖于范围。例如,迄今,在顶级窗体中,我们已经在示例中为样式设置了范 围,如示例5-17。

示例5-17

<!-- Window1.xaml -->
<Window >
  <!-- every Button or TextBlock in the Window is affected -- >
  <Window.Resources>
    <Style TargetType="{x:Type Button}"></Style>
    <Style TargetType="{x:Type TextBlock}"></Style>
  </Window.Resources>

</Window>

时间: 2024-09-18 19:28:05

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

《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章 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&quo

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

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

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

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

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

《Programming WPF》翻译 第9章 1.自定义控件基础

在写一个自定义控件之前,你需要问的第一个问题是,我真的需要一个自定义控件吗?一个写自定义 控件的主要原因是为了用户界面技术专家可以修改控件的外观,但是正如我们在前些章看到的,内容模型 和模板意味着这通常是不必要的.WPF提供了一个先进的按照规模的定制技术,你应该记住这些--当考 虑写一个自定义控件时. 使用属性修改一个已有控件的外观 组合已有的一些控件 将内容嵌入已有控件 使用模板代替一个已有控件 创建一个自定义控件或其他自定义元素 这个顺序提供了渐增的能力级别,以每一级别上轻微的额外成效为交换

《Programming WPF》翻译 第7章 2.图形

图形时绘图的基础,代表用户界面树的元素.WPF支持多种不同的形状,并为 它们每一个都提供了元素类型. 7.2.1基本图形类 在这一节列出的所有元素,派生于一个共同的抽象基类Shape.虽然你不能直 接使用这个类,知道它还是有帮助的,因为它定义了一组共同的特性--你可以 在任何形状上使用.这些共同的属性都被连接到形状的内部和外部被绘制的地方 . Fill属性详细指出了Brush要用于填充内部.Line和Polyline这些类没有内部 ,所以它们没有Fill属性.(这比通过有独立的Shape和Fil

《Programming WPF》翻译 第3章 2.处理输入

在Windows应用程序中,又3种基本的用户输入形式:鼠标.键盘和手写板. 同时,还有一种更高级输入方式,其可能来自快捷键.工具栏的按钮.菜单项. 尽管控件担当着主要的输入对象,用户界面的所有元素都可以接受输入.不 必吃惊,这是因为,为了提供外观,控件完全依赖于底层元素的服务,如 Rectangle和TextBlock.因此,在用户界面内的元素类型中,所有的输入机制都 是有用的,我们将要在接下来的章节介绍这些机制. 3.2.1 Routed事件 .Net框架定义了一个标准的机制来暴露事件.一个类