C# 如何仅从边界外部实现发光效果?
我想要的只是按钮边框外部的阴影,而不是内部的阴影。有没有一种按钮式的方法 找到了我需要的东西,但阴影来自边界内外。 我试图在C# 如何仅从边界外部实现发光效果?,c#,wpf,border,C#,Wpf,Border,我想要的只是按钮边框外部的阴影,而不是内部的阴影。有没有一种按钮式的方法 找到了我需要的东西,但阴影来自边界内外。 我试图在DropShadowEffectproperties和Borderproperties之间搜索,或者在internet上搜索,但没有找到任何内容 <Style x:Key="GlowingBorder" TargetType="Button"> <Setter Property="Template"> <Setter.
DropShadowEffect
properties和Border
properties之间搜索,或者在internet上搜索,但没有找到任何内容
<Style x:Key="GlowingBorder" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Margin="10" Background="Transparent"
BorderBrush="#171e25" BorderThickness="1" Opacity="1.0"
CornerRadius="{TemplateBinding Border.CornerRadius}">
<Border.Effect>
<DropShadowEffect ShadowDepth="0"
Color="#72f4aa"
Opacity="1"
BlurRadius="6"/>
</Border.Effect>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
预期:外部阴影,边界内部无阴影。用边框颜色填充按钮。
当前结果:从边界的内部和外部阴影<代码>前景和背景
中的属性样式
无效,按钮的上下文
也不显示。不知道为什么
如何修复它?我还没有测试过,但我假设您的按钮背景是透明的。通常情况下,阴影仅在外部,但由于内部是透明的,因此可以通过按钮看到,使其在内部发光 编辑:显然,您可以在效果中添加填充,这可能会解决您遇到的问题: 在我链接的网站上找到此链接:
像这样的东西怎么样:
<Style x:Key="GlowingBorder" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Border Margin="10" Background="Transparent"
BorderBrush="#171e25" BorderThickness="1" Opacity="1.0"
CornerRadius="{TemplateBinding Border.CornerRadius}">
<Border.Effect>
<DropShadowEffect ShadowDepth="0"
Color="#72f4aa"
Opacity="1"
BlurRadius="6"/>
</Border.Effect>
</Border>
<Border BorderBrush="#171e25" BorderThickness="1"
Background="{TemplateBinding Background}"
CornerRadius="{TemplateBinding Border.CornerRadius}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这应该适用于所有没有透明背景的按钮,因为您在发光的按钮上放置了另一个边框控件,从而覆盖了内部发光。是的,您是对的。谢谢将
Border
的Background
指定给任何颜色都有帮助,但现在还有另一个问题:Border
覆盖按钮的上下文(即使Background
是透明的)。到目前为止我还没有找到解决办法。有什么想法吗?听起来可能很混乱,但也许你的“按钮内有边框”而不是“按钮内有边框”。我的意思是边框应该是父元素,而不是按钮。这样做的原因是,您还可以(例如)创建一个带有边框的正方形,其中有3个按钮。像这样的