zoukankan      html  css  js  c++  java
  • Silverlight Tip(6)

                 去年曾经写过几篇关于Silverlight的一些小技巧,主要是对工作中遇到的问题的一个解决思路,本篇整理出其中经常遇到的几个问题

               1.ColorExtension

                  相信习惯用XAML的程序员经常会被这个问题苦恼着,明明Xaml里面可以智能提示的Color,用C#居然没有.见下图:

                 image       image

                那怎么解决这个呢,一般情况下我都是用取色工具把颜色取出来,然后转化成Color,Blend自带的取色工具就很好用

               image

            做法是从ARGB转化成Color这样一个思路,封装成一个类ColorExtension

         public sealed class ColorExtension
       {
           private readonly uint value;
           private ColorExtension() { }
           private ColorExtension(uint color)
           {
               this.value = color;
           }
           public static implicit operator Color(ColorExtension color)
           {
               uint colorValue = color;
               return Color.FromArgb((byte)(colorValue >> 24),
                                     (byte)(colorValue >> 16), (byte)(colorValue >> 8),
                                     (byte)(colorValue));
           }
           public static implicit operator Brush(ColorExtension color)
           { return new SolidColorBrush(color); }
           public static implicit operator uint(ColorExtension color)
           {
               return color.value;
           }
           public static implicit operator ColorExtension(uint color)
           {
               return new ColorExtension(color);
           }
         }

            然后将自己需要的颜色字段放进去即可,比如

           public static readonly ColorExtension LightBlue = 0XFFD5E9F1;

            现在你就可以通过智能提示点出这些Color了,实际上就是调用一个实例:

          SolidColorBrush brsuh= new SolidColorBrush(ColorExtension.LightBlue)    

            这样写C#代码就很方便了.

            2.DateGrid多语言列标题

               多语言的实现可以参考很久前一篇文章 本地化实现 DateGrid的Header是一个object对象,无法绑定,后来看到某篇博文提供的一个方法,则是利用HeadStyle的DateTemplate实现多语言,感觉非常有帮助,所以此回一并总结出来:       

    XAML 代码:

    <sdk:DataGridTemplateColumn>
                         <sdk:DataGridTemplateColumn.HeaderStyle>
                             <Style TargetType="sdk:DataGridColumnHeader">
                                 <Setter Property="ContentTemplate">
                                     <Setter.Value>
                                         <DataTemplate>
                                             <TextBlock />           
                                         </DataTemplate>
                                     </Setter.Value>
                                 </Setter>
                             </Style>
                         </sdk:DataGridTemplateColumn.HeaderStyle>
    </sdk:DataGridTemplateColumn>
  • 相关阅读:
    jquery radio set checked.
    Java Reflect
    Java Collection
    hashcode and equals
    Statement VS PrepareStatement
    第十六章 调试及安全性(In .net4.5) 之 调试程序
    第十五章 调试及安全性(In .net4.5) 之 管理程序集
    第十四章 调试及安全性(In .net4.5) 之 对称及非对称加密
    第十三章 调试及安全性(In .net4.5) 之 验证程序输入
    第十二章 管理类型(In .net4.5) 之 操作字符串
  • 原文地址:https://www.cnblogs.com/626498301/p/2525972.html
Copyright © 2011-2022 走看看