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属性就搞定了。

     

  • 相关阅读:
    记一道乘法&加法线段树(模版题)
    2021CCPC网络赛(重赛)题解
    Codeforces Round #747 (Div. 2)题解
    F. Mattress Run 题解
    Codeforces Round #744 (Div. 3) G题题解
    AtCoder Beginner Contest 220部分题(G,H)题解
    Educational Codeforces Round 114 (Rated for Div. 2)题解
    Codeforces Global Round 16题解
    Educational Codeforces Round 113 (Rated for Div. 2)题解
    AtCoder Beginner Contest 182 F
  • 原文地址:https://www.cnblogs.com/ListenFly/p/2265088.html
Copyright © 2011-2022 走看看