Ale*_*nor 3 .net wpf xaml wpf-4.0
我曾尝试以下方法更新按钮的游标时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>
Run Code Online (Sandbox Code Playgroud)
然而,按钮光标不会改变...如果我尝试更改其他属性,如背景,但这将工作正常...有人可以解释为什么这不起作用?
禁用该元素时,无法触发鼠标悬停事件.游标将根据鼠标移动而改变.要解决此问题,请在按钮上放置另一个元素,例如矩形,并在禁用按钮时更改其光标.通过使其不透明度为"0"来隐藏矩形.(无可见性="倒塌").
<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>
Run Code Online (Sandbox Code Playgroud)