• 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>
  • 相关阅读:
    发布在《30天自制操作系统》之前的操作捷径必读贴
    写在《30天自制操作系统》上市之前
    JS跨域代码片段
    C#简单操作XML
    Application Session Cookie ViewState Cache Hidden 区别
    C# string 特殊引用类型
    精通CSS高级Web标准解决方案:相对定位与绝对定位
    精通CSS高级Web标准解决方案:浮动
    精通CSS高级Web标准解决方案:背景图像基础
    char、varchar、nchar、nvarchar的区别
  • 原文地址:https://www.cnblogs.com/626498301/p/2525972.html
Copyright © 2020-2023  润新知