我在IsEnabled
为False
时尝试了以下方法来更新按钮的光标:
<Button Content="Test" IsEnabled="False">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Cursor" Value="No"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
然而按钮光标不会改变...如果我尝试更改其他属性,例如背景,但这样可以正常工作......有人可以解释为什么这不起作用吗?
答案 0 :(得分:5)
禁用元素时,无法触发鼠标悬停事件。游标将根据鼠标移动而改变。要解决此问题,请在按钮上放置另一个元素,例如矩形,并在禁用按钮时更改其光标。通过使其不透明度&#34; 0&#34;隐藏矩形。 (无可见性=&#34;折叠&#34;)。
<Grid>
<Button Content="Blah"
x:Name="btn"
IsEnabled="False" />
<Rectangle Opacity="0"
Fill="Transparent">
<Rectangle.Style>
<Style TargetType="Rectangle">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=btn, Path=IsEnabled}"
Value="False">
<Setter Property="Cursor"
Value="No" />
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
</Grid>