zoukankan      html  css  js  c++  java
  • Silverlgiht:快速去除/恢复对象的颜色

    某些场景下,想将一个对象快速隐藏、恢复,而且不影响布局。有一种方法:将对象的透明度在1与0之间切换。

    问:为什么不用Visibility?

    答:这通常会导致重新布局,即剩余可显示的控件可能会产生移动。在一些特定场景,比如报表套打中,明显不适用。

    但是切换透明度的方法,有时候也不太好用,比如一个Border里再套其它控件,如果只是想快速去掉Border的边框显示,而保留Border中的控件继续呈现,就不适用了。(因为Border的透明度为0后,也会同步隐藏Border内部的控件)。

    解决方法就是:修改Border边框颜色值中的A分量,让其在0与255之间切换。

            private void btnTest_Click(object sender, RoutedEventArgs e)
            {
                SolidColorBrush brush = b.BorderBrush as SolidColorBrush;
                if (brush != null) 
                {
                    Color c = brush.Color;
                    if (c.A == 0)
                    {
                        c.A = 0xff; //恢复颜色的Alpha分量
                    }
                    else 
                    {
                        c.A = 0x00;//去除颜色的Alpha分量
                    }              
                    brush.Color = c;                
                }
            }
    

  • 相关阅读:
    查看文件 ls -lh
    java Dom4j xml 写
    centos tar 常用
    os && shutil 模块
    Visual Studio
    ssh 无法登陆
    find 命令
    Centos7 安装redis
    zerorpc
    uwsgi
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/2086084.html
Copyright © 2011-2022 走看看