导出 (0) 打印
全部展开
此文章由人工翻译。 将光标移到文章的句子上,以查看原文。
译文
原文

ControlTemplate 类

定义作为控件模板应用的元素树。

命名空间:  System.Windows.Controls
程序集:  System.Windows(在 System.Windows.dll 中)

public sealed class ControlTemplate : FrameworkTemplate
<ControlTemplate ...>
  templateRootElement
</ControlTemplate>

XAML 值

templateRootElement

FrameworkElement 派生的单个对象元素。 templateRootElement 通常是包含其他元素的面板。

ControlTemplate 类型公开以下成员。

  名称说明
公共方法受 Silverlight for Windows Phone 支持ControlTemplate初始化 ControlTemplate 类的一个新实例。
页首

  名称说明
公共属性受 Silverlight for Windows Phone 支持Dispatcher获取与此对象关联的 Dispatcher (继承自 DependencyObject。)
公共属性受 Silverlight for Windows Phone 支持TargetType获取或设置 ControlTemplate 将应用到的类型。
页首

  名称说明
公共方法受 Silverlight for Windows Phone 支持CheckAccess确定调用线程是否可以访问此对象。 (继承自 DependencyObject。)
公共方法受 Silverlight for Windows Phone 支持ClearValue清除依赖项属性的本地值。 (继承自 DependencyObject。)
公共方法受 Silverlight for Windows Phone 支持Equals(Object)确定指定的 Object 是否等于当前的 Object (继承自 Object。)
受保护的方法受 Silverlight for Windows Phone 支持Finalize允许对象在垃圾回收对 Object 进行回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法受 Silverlight for Windows Phone 支持GetAnimationBaseValue返回为 Silverlight 依赖项属性设置的任意基值,在动画不活动时将应用它们。 (继承自 DependencyObject。)
公共方法受 Silverlight for Windows Phone 支持GetHashCode用作特定类型的哈希函数。 (继承自 Object。)
公共方法受 Silverlight for Windows Phone 支持GetType获取当前实例的 Type (继承自 Object。)
公共方法受 Silverlight for Windows Phone 支持GetValueDependencyObject 返回依赖项属性的当前有效值。 (继承自 DependencyObject。)
受保护的方法受 Silverlight for Windows Phone 支持MemberwiseClone创建当前 Object 的浅表副本。 (继承自 Object。)
公共方法受 Silverlight for Windows Phone 支持ReadLocalValue返回依赖项属性的本地值(如果设置了本地值)。 (继承自 DependencyObject。)
公共方法受 Silverlight for Windows Phone 支持SetValueDependencyObject 设置依赖项属性的本地值。 (继承自 DependencyObject。)
公共方法受 Silverlight for Windows Phone 支持ToString返回表示当前对象的字符串。 (继承自 Object。)
页首

ControlTemplate 定义控件的外观,这通常是多个元素的组合。

如果您正在定义一个控件模板来取代一个现有控件类的模板,则您用于定义控件模板内容的 XAML 应与现有的控件协定匹配。 否则,该控件可能无法在用户界面中正常发挥作用。 有关更多信息,请参见通过使用 ControlTemplate 自定义现有控件的外观控件样式和模板

如果您创建一个使用 ControlTemplate 的新控件类,则应使用控件部件模型,以便当有人替换您的控件的 ControlTemplate 时,您的控件能够正常工作。 有关更多信息,请参见 通过创建 ControlTemplate 来创建新的控件

在 Silverlight 中,控件模板化完全通过定义 XAML 完成。 FrameworkTemplate ControlTemplate 的 API 图面既不适合也不能通过在代码中创建 ControlTemplate 为控件定义模板。

下面的示例为 Button 创建一个简单的 ControlTemplate 控件模板包含一个 Grid 并指定以下行为:

  • 当用户将鼠标悬停在 Button 上方时,Grid 在半秒之后从绿色变为红色。

  • 当用户将鼠标移离按钮时,Grid 立即变回到绿色。


<ControlTemplate TargetType="Button">
  <Grid >
    <VisualStateManager.VisualStateGroups>
      <VisualStateGroup x:Name="CommonStates">

        <VisualStateGroup.Transitions>

          <!--Take one half second to trasition to the MouseOver state.-->
          <VisualTransition To="MouseOver" 
                              GeneratedDuration="0:0:0.5"/>
        </VisualStateGroup.Transitions>

        <VisualState x:Name="Normal" />

        <!--Change the SolidColorBrush, ButtonBrush, to red when the
            mouse is over the button.-->
        <VisualState x:Name="MouseOver">
          <Storyboard>
            <ColorAnimation Storyboard.TargetName="ButtonBrush" 
                            Storyboard.TargetProperty="Color" To="Red" />
          </Storyboard>
        </VisualState>
      </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <Grid.Background>
      <SolidColorBrush x:Name="ButtonBrush" Color="Green"/>
    </Grid.Background>
  </Grid>
</ControlTemplate>


Silverlight

受以下版本支持:5、4、3

Silverlight for Windows Phone

受以下版本支持:Windows Phone OS 7.1、Windows Phone OS 7.0

有关 Silverlight 支持的操作系统和浏览器的列表,请参见 支持的操作系统和浏览器

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

社区附加资源

添加
显示:
© 2014 Microsoft