如何在WPF控件上应用简单的褪色透明效果?

原文 https://dailydotnettips.com/how-to-create-simple-faded-transparent-controls-in-wpf/

使用OpacityMask属性,我们可以使元素的特定区域透明或部分透明。在这个技巧中,我将向您展示如何在WPF中的某些元素上应用褪色透明效果。

我们可以使用OpacityMask与两个SolidColorBrushGradientColorBrush。但是如果你想达到与褪色鉴于透明效果,你必须使用OpacityMaskLinearGradientBrush甚至可以使用RadialGradientBrush

让我们从GradientColorBrush开始,我已经应用了一个渐变效果,它从固体颜色移动到透明颜色,适用于TextBox控件。

因此,上面的代码块设置TextBox控件OpacityMaskLinerGradientBrush其中渐变从黑色开始到透明。

类似地,您也可以应用其他元素,比如下面的Button控件

在运行中,我们将得到以下输出。

那么,现在你可以尝试RadialGradientBrush更多的乐趣

在完整的XAML代码块下面


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

三十

31

<Window x:Class="WpfApplication3.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="MainWindow" Height="350" Width="525" Background="AliceBlue">

<Grid>

<Image Name="image1" Stretch="Fill"  Margin="12" Source="/WpfApplication3;component/Images/Backgrounds_25962.jpg" />   

<Button

Content="Click Me !"

Height="42"

HorizontalAlignment="Left"

Margin="152,213,0,0"

Name="TransBurron"

VerticalAlignment="Top"

Width="234" >

<Button.OpacityMask>

<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">

<GradientStop Offset="0.3" Color="Black"></GradientStop>

<GradientStop Offset="1" Color="Transparent"></GradientStop>

</LinearGradientBrush>

</Button.OpacityMask>

</Button>

<TextBox Height="30" Margin="83,74,59,207">

<TextBox.OpacityMask>

<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">

<GradientStop Offset="0" Color="Black"></GradientStop>

<GradientStop Offset="1" Color="Transparent"></GradientStop>

</LinearGradientBrush>

</TextBox.OpacityMask>

</TextBox>

</Grid>

</Window>

希望这会有所帮助。

干杯!

AJ。

原文地址:https://www.cnblogs.com/lonelyxmas/p/10799546.html

时间: 2024-11-08 11:40:51

如何在WPF控件上应用简单的褪色透明效果?的相关文章

在WPF控件上添加Windows窗口式调整大小行为

起因 项目上需要对Canvas中的控件添加调整大小功能,即能在控件的四个角和四条边上可进行相应的拖动,类似Windows窗口那种.于是在参考以前同事写的代码基础上,完成了该功能. 代码实现 Adorner 我们是给现有的控件添加功能,属于装饰功能.当然首先想到的就是Adorner.在MSDN中Adorner的介绍如下: 装饰器是一个绑定到 UIElement 的自定义 FrameworkElement. 装饰器呈现在装饰器层中,它是一个呈现图面,始终位于装饰元素或装饰元素集合的顶部:呈现装饰器独

C#如何在panl控件上添加Form窗体

1. if (treeView1.SelectedNode.Text == "个人信息") { Form1 f4 = new Form1(); f4.TopLevel = false; panel1.Controls.Clear(); panel1.Controls.Add(f4); panel1.Show(); }

如何在双向绑定的Image控件上绘制自定义标记(wpf)

原文:如何在双向绑定的Image控件上绘制自定义标记(wpf) 我们的需求是什么? 答:需要在图片上增加一些自定义标记,例如:2个图片对比时,对相同区域进行高亮. 先上效果图: 设计思路 1.概述 1.通过TargeUpdated事件,重新绘制图片进行替换. 2.详细实现 1.我们先绑定ImageTargetUpdated事件. ? 1 <Image x:Name="DestImageControl" Source="{Binding Path=Source.Url,

WPF如何将数据库中的二进制图片数据显示在Image控件上

首先在xaml文件里定义一个Image控件,取名为img MemoryStream stream = new MemoryStream(获得的数据库对象): BitMapImage bmp = new BitMapImage(); bmp.BeginInit();//初始化 bmp.StreamSource = stream;//设置源 bmp.EndInit();//初始化结束 img.Source = bmp;//设置图像Source 很多人用这个方法都没有初始化BitMapImage ,这

在 WPF 中如何在控件上屏蔽系统默认的触摸长按事件

来源:https://stackoverflow.com/questions/5962108/disable-a-right-click-press-and-hold-in-wpf-application 在控件上可以设置一个属性: Stylus.IsPressAndHoldEnabled 设置为 False 即可屏蔽触摸长按事件的触发. 参考文档:http://msdn.microsoft.com/en-us/library/system.windows.input.stylus.ispres

WPF 控件与布局

[控件到底是什么?] 程序的本质就是"数据+算法"------用户输入原始的数据,算法处理原始数据并得到结果数据.问题就在于程序如何将结果数据显示给用户.同样一组数据,你可以使用LED阵列显示出来,或者以命令行模式借助各种格式控制符(如TAB)对齐并输出,但这些都不如图形界面(GUI  Graphic User Interface)来的友好和方便.GUI的方便在于它对数据展示的直观性,程序员可以通过编程的方式将数据通过图形的方式展示出来,从而避免了用户面对一大堆复杂数据的痛苦.提高了工

在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

今天关闭一个窗体,报出这样的一个错误"在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke.",这个不用多想,肯定是那个地方没有释放掉.既然碰到这个问题,先不说问题本身,来说说其他的一些事情.winform最常见的是datagridview这个控件,不管重写还是怎么,很多数据的操作都是用datagridview来展示的,因此,它的异步调用也算是比较多的一类了.比如:1 从数据库中读取大量数据(所谓的分页读取不在这个范畴)2 操作datagridview,然后一

跟我一起学WPF(3):WPF控件基础

WPF控件简介 通过上一篇XAML语言的介绍,我们知道,XAML是一个树形结构,同样,WPF控件作为构成整个XAML树的一部分,也是一个树形结构.我们看一个简单的例子. <Button.Content> <DockPanel> <Image Source="F:\01.Code\01.MyCode\WpfApplication1\WpfApplication1\Resources\荷.jpg" Width="30"/> <T

WinForm中调用WPF控件

WinForm中调用WPF控件 在WinForm中可以使用WPF中的控件,或者由WPF创建的自定义控件: 步骤1:创建WinForm工程: 步骤2:在WinForm工程的解决方案资源管理器中,在刚刚创建的WinForm解决方案中新建或者添加现有的WPF用户控件工程: 步骤3:在WPF中创建自定义的控件,或者添加WPF控件到面板上: 步骤4:在WinForm面板上添加ElementHost控件(工具箱中): 步骤5:生成解决方案: 步骤6:在刚刚的ElementHost中的Child属性中添加刚刚