c# - 当鼠标悬停在窗口上时,如何更改窗口的背景?
问题描述
我已经看到如何通过 MouseClick 或鼠标悬停在它上面来更改Button
a Background
。鼠标悬停时如何更改Window
背景?我以前从未见过这样的事情......也许有人可以帮助我?这是我用来更改 aButton
的背景的代码。我不知道我需要改变什么来做我需要的。
<Window.Resources>
<Style x:Key="DelAll">
<Setter Property="Button.Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border Name="Head">
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Fill="Transparent" />
</Border>
<Label Name="NameLable" Content="Delete All" FontStyle="Italic" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Red"></Label>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Head" Property="Background" Value="#3500ACFF"/>
<Setter TargetName="Head" Property="BorderBrush" Value="#FF00ACFF"/>
<Setter TargetName="Head" Property="BorderThickness" Value="1,1,1,1"/>
<Setter TargetName="NameLable" Property="Foreground" Value="Blue"/>
</Trigger>
<Trigger Property="IsMouseDirectlyOver" Value="true">
<Setter TargetName="NameLable" Property="Foreground" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="Del">
<Setter Property="Button.Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border Name="Head">
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Fill="Transparent" />
</Border>
<Label Name="NameLable" Content="Delete" FontStyle="Italic" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Yellow"></Label>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Head" Property="Background" Value="#3500ACFF"/>
<Setter TargetName="Head" Property="BorderBrush" Value="#FF00ACFF"/>
<Setter TargetName="Head" Property="BorderThickness" Value="1,1,1,1"/>
<Setter TargetName="NameLable" Property="Foreground" Value="Green"/>
</Trigger>
<Trigger Property="IsMouseDirectlyOver" Value="true">
<Setter TargetName="NameLable" Property="Foreground" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Button Style="{StaticResource DelAll}" HorizontalAlignment="Left" Width="150" Height="50" Margin="95,49,0,0" VerticalAlignment="Top"/>
<Button Style="{StaticResource Del}" HorizontalAlignment="Left" Width="150" Height="50" Margin="95,200,0,0" VerticalAlignment="Top"/>
</Grid>
解决方案
这段代码应该为你做,<Window.Style>
...</Window.Style>
是相关部分!
<Window x:Class="ForStackoverflow.MainWindow"
...
xmlns:local="clr-namespace:ForStackoverflow"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Style>
<Style TargetType="{x:Type Window}">
<Setter Property="Background" Value="Blue" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>
<Grid>
Content..
</Grid>
</Window>
它本质上与按钮相同,只是不是在 中创建 a Style
,<Windows.Resources>
而是设置Style
了Window
using <Window.Style>
。希望这可以帮助!
推荐阅读
- laravel - 从 google drive 读取 word 文档内容
- asp.net-mvc - 使用 .Net 中的 SMTP 客户端以 .msg 格式保存电子邮件
- google-cloud-platform - 工作流失败。原因:刷新凭据时出现问题
- c# - 写入输出消息(C# => TextBox)
- objective-c - 如何在 Objective-C 中访问 Settings.bundle 中的本地化字符串?
- curl - 网页抓取 - 菜鸟
- python - 创建满足以下先决条件的 Anaconda 环境
- android - 搜索栏没有显示缓冲辅助栏,当点击搜索栏时,视频视图没有跳到点击的位置
- python - pySerial - 更新太慢
- c++ - 有没有办法将 Lua 成员变量绑定为对该变量名称的 C/C++ 函数的调用