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>
  • 相关阅读:
    .Net框架集WebClient类向WinCE平台上传文件(FTP方式)延迟15秒释疑
    WinCE系统下BootLoader的开发
    cf1154G 埃氏筛应用
    关于调用C kernel functions
    Download internal table data into Excel(比使用OLE自己填写速度要快)
    Internet+大会和Google请来的大师
    回到Mountain View
    关于F4 Help帮助窗口的参数F4METHOD的设置
    计划策略 MTS部分
    人在Google
  • 原文地址:https://www.cnblogs.com/626498301/p/2525972.html
Copyright © 2011-2022 走看看