WPF – 阴影效果

  • WPF – 阴影效果已关闭评论
  • 133 次浏览
  • A+
所属分类:.NET技术
摘要

基本属性:代码实例:  由于时间关系,代码实例都写在一起了。  

基本属性:

属性
说明
描述
Color
设置阴影效果背景色
Color="Red"
ShadowDepth
设置阴影的偏移度
ShadowDepth="5"
Direction
设置阴影的角度
Direction="-45"
BlurRadius
设置阴影模糊程度
BlurRadius="20"
Opacity
设置阴影透明度
Opacity="1"
阴影效果介绍:
在WPF中,你可以使用DropShadowEffect属性为控件添加阴影效果。DropShadowEffect是System.Windows.Media.Effects命名空间下的一个类,它提供了一种简单的方法来为控件添加阴影效果。
下面是一个简单的示例,演示如何在WPF中为按钮添加阴影效果:
<Button Width="100" Height="50">     <Button.Effect>         <DropShadowEffect ShadowDepth="10" BlurRadius="20" Color="Gray"/>     </Button.Effect>     Click Me </Button>

在上面的示例中,我们为按钮的Effect属性设置了一个DropShadowEffect对象。ShadowDepth属性控制阴影的深度,BlurRadius属性控制阴影的模糊程度,Color属性控制阴影的颜色。
你可以根据需要调整这些属性的值来获得不同的阴影效果。
阴影效果应用范围:
DropShadowEffect控件适用于需要添加阴影效果的各种场合,例如在按钮、标签、文本框等控件上添加阴影,以增强控件的立体感和视觉效果。
此外,DropShadowEffect控件还可以用于实现阴影的动态效果,例如在鼠标悬停时改变阴影的颜色、大小等属性,以提供更丰富的交互体验。
总之,DropShadowEffect控件是一种非常实用的工具,可以在WPF应用程序中增强视觉效果和交互体验
阴影效果是UIElement类提供,所有继承自UIElement类的控件都可以实现阴影效果。

WPF - 阴影效果

代码实例:  由于时间关系,代码实例都写在一起了。

<Grid>          <StackPanel>         <!--设置阴影效果-->         <Border Width="100" Height="50" Background="Orange">             <!--Effect设置影响效果标签-->             <Border.Effect>                 <!--在目标周围绘画阴影效果-->                 <DropShadowEffect Color="Red" ShadowDepth="0"/>             </Border.Effect>         </Border>                  <!--设置阴影效果的基本属性-->         <Border Margin="0 10" Width="100" Height="50" Background="Orange">             <!--Effect设置影响效果标签-->             <Border.Effect>                 <!--默认显示黑色阴影效果-->                 <!--<DropShadowEffect/>-->                 <!--Color设置阴影颜色  ShadowDepth设置阴影偏移度 Direction设置阴影的角度 BlurRadius="20"设置模糊的程度 Opacity="1"设置透明度-->                 <!--大多数时候使用不设置阴影的偏移方向-->                 <DropShadowEffect Color="Red" ShadowDepth="5" Direction="-45" BlurRadius="20" Opacity="1"/>             </Border.Effect>         </Border>                           <!--设置阴影效果偏移度-->         <Border Margin="0 10" Width="100" Height="50" Background="Orange">             <!--Effect设置影响效果标签-->             <Border.Effect>                 <!--ShadowDepth设置阴影偏移度 -->                 <DropShadowEffect Color="Red" ShadowDepth="5"/>             </Border.Effect>         </Border>          <!--实现旋转阴影效果-->         <Border Width="100" Height="50" Background="Orange">             <!--设置旋转效果-->             <Border.RenderTransform>                 <!--Angle设置旋转角度-->                 <RotateTransform Angle="45"/>             </Border.RenderTransform>             <!--Effect设置影响效果标签-->             <Border.Effect>                 <!--Color设置阴影颜色  ShadowDepth设置阴影偏移度 Direction设置阴影的角度-->                 <DropShadowEffect Color="Red" ShadowDepth="5" Direction="-45"/>             </Border.Effect>         </Border>          <!--给文本设置阴影效果-->         <TextBlock Text="Hello">             <TextBlock.Effect>                 <!--Color设置阴影颜色  ShadowDepth设置阴影偏移度 Direction设置阴影的角度 BlurRadius="20"设置模糊的程度 Opacity="1"设置透明度-->                 <DropShadowEffect Color="Gray" ShadowDepth="0" BlurRadius="3"/>             </TextBlock.Effect>         </TextBlock>          <!--实现阴影效果-->         <Border Margin="0 60 0 0" Width="100" Height="30" BorderBrush="Green" BorderThickness="1" CornerRadius="10">             <!--这里设置隐形效果是对整个border内所有的控件生效,只要是非透明不部分都给它做阴影效果-->             <Border.Effect>                 <DropShadowEffect Color="Red" ShadowDepth="0" Direction="-45" BlurRadius="5" Opacity="1"/>             </Border.Effect>             <TextBlock Text="Hello" VerticalAlignment="Center" HorizontalAlignment="Center"/>         </Border>          <!--实现只有外部显示阴影效果,不影响内部控件-->         <!--Background="White" 设置内容区域为白色背景 - 样式组合可以千变万化-发挥想象力-->         <Border Margin="0 10 0 0" Width="100" Height="30" BorderBrush="Green" BorderThickness="1" CornerRadius="10"                 Background="White">             <!--这里设置隐形效果是对整个border内所有的控件生效,只要是非透明不部分都给它做阴影效果-->             <Border.Effect>                 <DropShadowEffect Color="Red" ShadowDepth="0" Direction="-45" BlurRadius="5" Opacity="1"/>             </Border.Effect>             <TextBlock Text="Hello" VerticalAlignment="Center" HorizontalAlignment="Center"/>         </Border>          <!--实现在内部显示阴影效果的情况下不影响内部的其它控件。-->         <Grid Margin="0 10 0 0">             <!--ClipToBounds="True" 超出区域部分的阴影效果进行裁切-->             <Border  Width="100" Height="30" BorderBrush="Green" BorderThickness="1" CornerRadius="0"     ClipToBounds="True">                 <!--这里设置隐形效果是对整个border内所有的控件生效,只要是非透明不部分都给它做阴影效果-->                 <Border.Effect>                     <DropShadowEffect Color="Red" ShadowDepth="0" Direction="-45" BlurRadius="5" Opacity="1"/>                 </Border.Effect>             </Border>             <!--这里文字放在boder外面,这样文字部分可以不显示阴影效果。-->             <TextBlock Text="Hello" VerticalAlignment="Center" HorizontalAlignment="Center"/>         </Grid>          <!--实现在设置圆角的情况下在内部显示阴影效果-->         <Grid Margin="0 10 0 0">             <!--ClipToBounds="True" 超出区域部分的阴影效果进行裁切-->             <Border  Width="100" Height="30" BorderBrush="Green" BorderThickness="1" CornerRadius="10">                 <!--这里设置告诉boder按照指定尺寸进行裁切-->                 <Border.Clip>                     <!--Rect="0 0 100 30" 图形坐标(x,y,w,h)(x轴坐标,y轴坐标,宽度,高度) RadiusX="10" X轴圆角度-->                     <RectangleGeometry Rect="0 0 100 30" RadiusX="10" RadiusY="10"/>                 </Border.Clip>                 <!--这里设置隐形效果是对整个border内所有的控件生效,只要是非透明不部分都给它做阴影效果-->                 <Border.Effect>                     <DropShadowEffect Color="Red" ShadowDepth="0" Direction="-45" BlurRadius="5" Opacity="1"/>                 </Border.Effect>             </Border>             <!--这里文字放在boder外面,这样文字部分可以不显示阴影效果。-->             <TextBlock Text="Hello" VerticalAlignment="Center" HorizontalAlignment="Center"/>         </Grid>     </StackPanel> </Grid>

 
效果展示:

WPF - 阴影效果