将背景和透明度设置为按钮,但不影响其内容

4
我正在使用WPF,我想要做的是设置我的按钮的不透明度和背景颜色,但我不想影响按钮内部的内容。我尝试了几种方法,但不幸的是都没有起作用。
我找到了这个样式,我想应用类似的东西: enter image description here 这是我的数字键盘:(我正在尝试编辑BTN 7): enter image description here 正如你们所看到的,不幸的是,我无法在不影响内部内容的情况下设置按钮的不透明度。
这是我的XAML代码(重点关注btn 7):
<StackPanel Height="50" Orientation="Horizontal" Margin="0,0,0,5">
                <Button  FontSize="15" FontWeight="Bold" x:Name="btn7" Foreground="#83D744" Click="btn7_Click" BorderBrush="#83D744" BorderThickness="0.5" Content="7" Width="80" RenderTransformOrigin="0.557,0.693" d:LayoutOverrides="HorizontalAlignment" Background="Black" Opacity="0.2" Margin="0,0,5,0" />
                <Button  FontSize="15" Foreground="Black" FontWeight="Bold" x:Name="btn8" Click="btn8_Click" Content="8" Width="80" Background="#FF50504F" Margin="0,0,5,0"/>
                <Button  FontSize="15" Foreground="Black" FontWeight="Bold" x:Name="btn9" Click="btn9_Click" Content="9" Width="80" d:LayoutOverrides="HorizontalAlignment" Background="#FF50504F"/>
</StackPanel>

所以,有人可以帮我解决这个问题吗?谢谢!
2个回答

6

为背景添加透明度的画笔

黑色的十六进制代码为#000000

将Alpha通道更改为半透明 (Background="#50000000") 并删除 Opacity="0.2"

<Button x:Name="btn7"
        FontSize="15" FontWeight="Bold" Foreground="#83D744" 
        Click="btn7_Click" 
        BorderBrush="#83D744" BorderThickness="0.5" 
        Content="7" Width="80" RenderTransformOrigin="0.557,0.693"
        d:LayoutOverrides="HorizontalAlignment" 
        Background="#50000000" Margin="0,0,5,0" />

请问您能否给我一个例子,说明在我的情况下(btn7上)会是什么样子? - user6067265
据我所见,您只添加了Background="#50000000",您能解释一下吗?另外,关于边框厚度,您看到我设置为0.5,但它并没有应用到我的按钮上,它看起来像是2-3px的厚度。 - user6067265
1
@billy_56,在你的原始代码中 Background="Black" Opacity="0.2"。这意味着按钮将使用 SolidColorBrush(黑色)来渲染自身,并且还会有80%的透明度。您可以使用十六进制代码完全相同:Background="#000000" Opacity="0.2"Background="#FF000000" Opacity="0.2"。 FF是alpha通道值,您可以将其减少以创建透明刷子(#50000000)。您需要删除 Opacity="0.2" 以保持其他所有内容不透明。 - ASh
@billy_56,关于BorderThickness:我怀疑这个属性在默认按钮模板中没有被使用。 - ASh
谢谢,伙计。那么你有什么建议如何使用边框解决这个问题?我应该开一个新的问题并留下链接吗?再次感谢。 - user6067265
@billy_56,我建议你首先检查实际的按钮模板(请参见此帖子如何操作 - https://dev59.com/QWoy5IYBdhLWcg3wBJgx),然后在该模板中添加`BorderThickness`绑定。 - ASh

-1

将按钮的不透明度从0.2设置为1


这不是解决方案,因为我的按钮背景将是100%黑色,而我想要背景的透明度。 - user6067265
但是你附加的第一张照片有黑色背景,不是吗? - abidsplanet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接