首页 / C# / C#-通过基于样式的属性覆盖样式
C#-通过基于样式的属性覆盖样式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-通过基于样式的属性覆盖样式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2084字,纯文字阅读大概需要3分钟。
内容图文
![C#-通过基于样式的属性覆盖样式](/upload/InfoBanner/zyjiaocheng/679/d2ad0762cd6e42a4a32beb3e4d7bb94f.jpg)
我有一个按钮的基本样式:
<Style x:Key="ButtonStyle_base" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid Name="grid" Margin="0,0,0,0">
<Rectangle Name="rectangle" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<Rectangle.Effect>
<DropShadowEffect BlurRadius="3" Opacity="0.4" ShadowDepth="6"/>
</Rectangle.Effect>
</Rectangle>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True" />
<Trigger Property="IsDefaulted" Value="True" />
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
因此,在网格中,我有一个矩形.为了使我的应用程序可换肤,我在另一个资源字典中添加了一个基于此的样式:
<Style x:Key="ButtonStyle" BasedOn="{StaticResource ButtonStyle_base}">
<Setter Property="Rectangle.Fill" >
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1" >
<GradientStop Color="#FFFFFFFF" Offset="0.5" />
<GradientStop Color="#CCFFFFDD" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
我想要的是更改矩形的填充.没用我怎样才能做到这一点?
解决方法:
绑定按钮的背景填充属性,
<Style x:Key="ButtonStyle_base" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid Name="grid" Margin="0,0,0,0">
<Rectangle Name="rectangle" HorizontalAlignment="Stretch" Fill="{TemplateBinding Background}" VerticalAlignment="Stretch" >
<Rectangle.Effect>
<DropShadowEffect BlurRadius="3" Opacity="0.4" ShadowDepth="6"/>
</Rectangle.Effect>
</Rectangle>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True" />
<Trigger Property="IsDefaulted" Value="True" />
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
从派生的样式中设置背景,
<Style x:Key="ButtonStyle" BasedOn="{StaticResource ButtonStyle_base}">
<Setter Property="Background" >
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1" >
<GradientStop Color="#FFFFFFFF" Offset="0.5" />
<GradientStop Color="#CCFFFFDD" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
内容总结
以上是互联网集市为您收集整理的C#-通过基于样式的属性覆盖样式全部内容,希望文章能够帮你解决C#-通过基于样式的属性覆盖样式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。