WPF 立体Border

WPF 立体Border ,用来划分各个功能区块

在资源文件中,添加如下样式代码:

 <Style x:Key="BaseBorder" TargetType="Border">
     <Setter Property="Background" Value="White" />
     <Setter Property="BorderBrush" Value="#EEEEEE" />
     <Setter Property="BorderThickness" Value="1" />
     <Setter Property="CornerRadius" Value="10" />
     <Setter Property="Opacity" Value="1" />
     <Setter Property="Effect">
         <Setter.Value>
             <DropShadowEffect
          BlurRadius="10"
          Opacity="0.3"
          ShadowDepth="3"
          Color="#BBBBBB" />
         </Setter.Value>
     </Setter>
 </Style>
 <Style x:Key="ExternalBorder" TargetType="Border">
     <Setter Property="Effect">
         <Setter.Value>
             <DropShadowEffect
          BlurRadius="10"
          Direction="-225"
          Opacity=".6"
          ShadowDepth="3"
          Color="White" />
         </Setter.Value>
     </Setter>
 </Style>

在使用时:

创建两个嵌套的Border,外部使用ExternalBorder样式,内部使用BaseBorder样式,如:

<Border Width="400" Height="300" Style="{StaticResource ExternalBorder}">
    <Border Style="{StaticResource ResourceKey=BaseBorder}" />
</Border>

如果要在Border里面加控件,加在最里面的Border里。

如果要改背景颜色,可以改BaseBorder样式里的Background属性,要改边框颜色可以改BorderBrush属性。

之所以用了两个Border,是因为在对Border添加阴影的同时,又在外部对左上角加了高亮,模拟光线从左上方照射的感觉,效果比单用一个Border加阴影要更自然,更有高级感,尤其在背景颜色较深时更加明显。

上图:加了高光;     下图:只加了阴影,没有加高光

我个人更喜欢上面加了高光的这种,如果要去掉高光,只用一个BaseBorder即可。

相关推荐

  1. WPF Border

    2024-03-23 05:36:02       58 阅读
  2. wpf中的Border和Background

    2024-03-23 05:36:02       43 阅读
  3. [C# WPF] 如何给控件添加边框(Border)?

    2024-03-23 05:36:02       54 阅读
  4. WPF用C#代码实现设置Border颜色的渐变

    2024-03-23 05:36:02       28 阅读
  5. WPF应用40】WPF 基本控件 - Border:详解与实例

    2024-03-23 05:36:02       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 05:36:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 05:36:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 05:36:02       87 阅读
  4. Python语言-面向对象

    2024-03-23 05:36:02       96 阅读

热门阅读

  1. C#配置网站的服务和HTTP请求管道

    2024-03-23 05:36:02       42 阅读
  2. Qwen及Qwen-audio大模型微调项目汇总

    2024-03-23 05:36:02       44 阅读
  3. 在 Swift 中, enumerated() 有哪些常用的使用方式 ?

    2024-03-23 05:36:02       47 阅读
  4. nodejs的线程模型和libuv库的基本使用

    2024-03-23 05:36:02       42 阅读
  5. css的background详解

    2024-03-23 05:36:02       40 阅读
  6. Redis(Remote Dictionary Server)

    2024-03-23 05:36:02       38 阅读
  7. 【智能计算系统】神经网络基础&代码实现

    2024-03-23 05:36:02       41 阅读
  8. jupyter | mac jupyter快捷键

    2024-03-23 05:36:02       36 阅读
  9. 云原生相关概念(小白版)

    2024-03-23 05:36:02       35 阅读
  10. 掌握ChatGPT:如何用AI撰写高质量论文

    2024-03-23 05:36:02       44 阅读