如何设置Material Design按钮背景且不显示阴影并去除圆角?
解决Material Design按钮的阴影与圆角问题
嘿,我明白你现在的困扰——用Material Design的Button设置背景后自带阴影和圆角,临时用透明按钮加后方矩形的方法确实有点绕,而且代码可读性差。其实咱们可以直接利用Material Design提供的附加属性来优雅解决这个问题,不用搞那些取巧的操作!
直接修改单个按钮的属性
你只需要给按钮加上两个Material Design的附加属性就能搞定:
materialDesign:ButtonAssist.Elevation="0":Material Design的按钮阴影是通过**海拔高度(Elevation)**控制的,设为0就会完全移除阴影效果;materialDesign:ButtonAssist.CornerRadius="0":这个属性可以直接覆盖按钮的默认圆角,让它变成直角样式。
修改后的代码如下:
<Button Grid.Column="1" Background="{StaticResource BurgundyLightBrush}" Command="{Binding Path=EditSwitchCommand}" materialDesign:ButtonAssist.Elevation="0" materialDesign:ButtonAssist.CornerRadius="0"> <materialDesign:PackIcon Kind="Edit" /> </Button>
全局复用的样式方案
如果你有多个按钮需要这种无阴影、直角的样式,更推荐创建一个自定义Style,避免重复写属性:
<Style x:Key="FlatSquareMaterialButton" TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignButton}"> <Setter Property="materialDesign:ButtonAssist.Elevation" Value="0"/> <Setter Property="materialDesign:ButtonAssist.CornerRadius" Value="0"/> <!-- 可以在这里添加其他自定义设置,比如边框、字体等 --> </Style>
之后你的按钮只需要引用这个Style就行:
<Button Grid.Column="1" Style="{StaticResource FlatSquareMaterialButton}" Background="{StaticResource BurgundyLightBrush}" Command="{Binding Path=EditSwitchCommand}"> <materialDesign:PackIcon Kind="Edit" /> </Button>
这种方法比你之前的临时方案简洁太多,而且完全符合Material Design控件的设计逻辑,代码可读性也高很多~
内容的提问来源于stack exchange,提问作者DaemonFire
相关产品推荐
相关产品推荐

