zoukankan      html  css  js  c++  java
  • 指定类的样式

    自己定义了一个类ImageLayer,然后想把特定的样式应用到ImageLayer,可以把如下代码加入app

    <Style x:Name="ImageLayerStyle" TargetType="layer:ImageLayer">
        
    <Setter Property="Template">
            
    <Setter.Value>
                
    <ControlTemplate TargetType="layer:ImageLayer">
                    
    <Canvas>
                        
    <Grid x:Name="RootElement" MinWidth="48">
                            
    <Grid.RenderTransform>
                                
    <ScaleTransform x:Name="_ScaleTransform" ScaleX="1" ScaleY="1"/>
                            
    </Grid.RenderTransform>
                            
    <Image x:Name="imageName" Stretch="None" Width="48" Height="48" HorizontalAlignment="Center"></Image>
                        
    </Grid>
                    
    </Canvas>
                
    </ControlTemplate>
            
    </Setter.Value>
        
    </Setter>
    </Style>

    然后在类ImageLayer初始化函数中加入以下代码

    this.Style = Application.Current.Resources["ImageLayerStyle"as Style;

    就可以把ImageLayerStyle样式应用到ImageLayer。

    同时还可以不指定name,作为默认样式应用,不过会有一点麻烦

    需要进行如下设置

    在Silverlight Application下建立一个Themes目录, 创建generic.xaml文件(其它文件名称无法实现). 将指定TargetType的Style移动到generic.xaml. 这个概念是沿用WPF创建自定义控件时的技巧(WPF运行时engine会自动查找generic.xaml并将Style应用到控件实例), 在Silverlight中一样可以使用.

    如果是想要继承默认样式怎么办呢

    1 支持设置全局样式,也就是所有button的style,这个style里可以设置button的公共样式,比如大小拉,颜色啦,字体拉等等。 
    2 针对个别的button,可以设置自己的style,但是这个style是基于1中style的 
    解决方法: 
    1 设置一个全局带key的style, 
    <Style x:Key="CustomButton" TargetType="Button"> 
    <!--在这里设置全局的style--> 
    </Style> 
    看到这困惑了把,这个带key的style用到全局,一个一个加key?nono 
    2 设置一个不带key的style,并且这个style继承上边的全局style 
    <Style TargetType="Button" BaseOn="{CustomButton}"> 
    </Style> 
    这样,所有的button的style,默认就是来自于CustomButton。 
    3 针对特殊的style,设置带key的style,并BaseOn="{CustomButton}" 

  • 相关阅读:
    JD20 紧急疏散
    排序-归并
    排序:快排
    剑指offer-二叉树镜像
    美的笔试--分糖果
    centos限定端口访问
    javascript中使用ajax异步验证数据库后方法return true时总是返回undefined
    javascript自定义startWith()和endWith()方法
    jsp <input type="file"> 清空value值的一种方式
    Could not initialize class sun.awt.X11GraphicsEnvironment
  • 原文地址:https://www.cnblogs.com/junyuz/p/2022610.html
Copyright © 2011-2022 走看看