zoukankan      html  css  js  c++  java
  • Silverlight指定Customer Control的默认样式

    当创建了一个自定义控件之后,由于不能在代码中写样式代码,也无法在控件运行时候指定Template,为了解决这个问题可以使用Generic.xaml来实现。

    Generic.xaml可以作为一个资源字典来理解,在其里边写自定义的模板或者是样式,下面看看怎么使用:

    1.首先在Silverlight Application(Application Class library)右键添加文件夹,键入名字Theme(必须是这个)

    2.右键Theme文件夹新建文件,选择XML文件模板,写入名字 Generic.xaml(必须)

    3.打开Generic.xaml文件 键入代码

    <ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local
    ="clr-namespace:ProSilverlight.Template;assembly=ProSilverlight">
    <Style TargetType="local:FlipPanel">
    <Setter Property="Template">
    <Setter.Value>
    <ControlTemplate TargetType="local:FlipPanel">

    </ControlTemplate>
    </Setter.Value>
    </Setter>
    </Style>
    </ResourceDictionary>

    可以看到就是一个资源字典,其中xmlns:local是该例子中要进行设置样式的类的所在namespace的引用;在字典中同样还是我们熟悉的Style的编码,可以看到TargetType的值就是一个自定义的Control(当前自定义Control基类为Control,可以自行创建)。

    到此,样式的工作已经完成,还差最后一步。

    4.在自定义Control指定默认样式:

            public FlipPanel()
    {
    this.DefaultStyleKey=typeof(FlipPanel);
    }

    没错,就是在自定义控件的构造函数中,指定DefaultStyleKey属性就搞定了。

     

  • 相关阅读:
    koa2 + webpack 热更新
    koa2在node6中如何运行
    浅拷贝和深拷贝的理解和实现
    angular2多组件通信流程图
    angular2 表单的理解
    ssh-add Could not open a connection to your authentication agent.
    outlook同步异常
    ctrl+c ctrl+d ctrl+z 的区别和使用场景
    grep 详解
    mysql 事务隔离级别 详解
  • 原文地址:https://www.cnblogs.com/ListenFly/p/2265088.html
Copyright © 2011-2022 走看看