wpf - 如何在 WPF 中为 Canvas 使用 Style.Triggers
问题描述
我想通过这段代码为画布制作一个简单的效果,但它不起作用。
<Canvas.Style>
<Style>
<Setter Property="Canvas.Background" Value="Transparent"/>
<Style.Triggers>
<Trigger Property="Canvas.IsMouseOver" Value="True">
<Setter Property="Canvas.Background" Value="LightSkyBlue">
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Canvas.Style>
解决方案
您的<Style>
元素缺少TargetType
. 因为控件可以由多个控件组成,您可以使用TargetType
它们来定位不同的控件类型,并且这样做还会为您提供子元素的上下文智能感知。
<Canvas HorizontalAlignment="Left" Height="100" Margin="215,128,0,0" VerticalAlignment="Top" Width="100">
<Canvas.Style>
<Style TargetType="Canvas">
<Setter Property="Background" Value="Transparent"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Canvas.Background" Value="LightSkyBlue">
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Canvas.Style>
</Canvas>
我觉得 CSS 在简化样式方面确实做得很好,所以 WPF 必须如此深奥真是令人遗憾。
推荐阅读
- python - 现成的正则表达式模板库,用于检查最流行的数据格式
- swift - 在swift 5中将货币文本字段转换为双倍?
- reactjs - 使用多个调度测试一个动作(加载、错误和成功)
- cordova-plugins - 如果我有完整路径,如何使用 Filesystem.readFile
- sql - 我如何选择订单表?
- java - 消息驱动 bean,未根据轮询间隔获取新电子邮件
- c# - 使用“in”参数修饰符传递文字
- c# - EF6 无法识别的 Guid 格式。试图在集合中找到
- dockerfile - 无法使用 dockerfile 安装具有基本映像的 Ghostscript 9.50 作为 Ubuntu 16.04
- scala - Scala 中的 Kadane 算法解释