wpf - 按钮样式问题
问题描述
我正在尝试更改此按钮的样式,但我遇到了问题。在将此代码添加到我的解决方案之前,当我将鼠标放在按钮上时,背景不会更改为我的样式,而是更改为默认颜色。我查找信息并找到了这个 Setter Template。有了这个,我必须删除那个默认背景,但是现在,当我把鼠标放在上面时,背景就会消失。我猜它正在获取其父级的背景(窗口),但我不知道如何使用它自己的背景,正如我在样式代码中所写的那样。StackOverFlow 似乎不允许我粘贴整个代码,但我认为您可以理解它。
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<ContentPresenter
Margin="{TemplateBinding Control.Padding}"
HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
RecognizesAccessKey="True"
Content="{TemplateBinding ContentControl.Content}" />
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="White"/>
<Setter Property="Foreground" Value="DarkRed"/>
<Setter Property="Cursor" Value="Hand"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
解决方案
请将您的样式触发器移至 ControlTemplate:
<ControlTemplate.Triggers>
your triggers here
</ControlTemplate.Triggers>
推荐阅读
- python - Python-将显示为带括号的字符串的负数替换为浮点数
- java - 为什么@PostConstruct 会导致 NullPointerException?
- python - pytest 夹具 - 获取价值并避免错误“直接调用夹具'X'”
- vb.net - 在 vb.net 中使用 OLEDB 从 Excel 导入 datagridview
- laravel - laravel webservice中的jwtauth不起作用
- c# - Application.Current.Dispatcher.Invoke UWP 模拟
- python - 如何在 Python Jupyter Notebook 的按钮中编写“重新启动内核并运行所有”代码?
- python - python3将二进制数据转换为字符串并返回
- dart - 从自制软件安装飞镖
- javascript - 哪张图表适合 12 个月内可交付成果的明智员工?