标题基本概括了所有内容。有没有办法让 XAML 代码中的图像可见,不可点击(我试图让它后面的元素接收点击)并同时响应鼠标悬停事件? IsHitTestVisible
属性禁用鼠标悬停。这是一个供引用的代码片段(它实际上使用了多个额外的 MultiDataTriggers,但这与此处无关)。当前鼠标悬停有效,但点击它不起作用(添加 IsHitTestVisible="True"
使其相反)
<Image Name="AutoUpdateStatus"
Stretch="UniformToFill"
Grid.Column="2" Grid.Row="0"
Height="32" Width="32"
HorizontalAlignment="Center"
Margin="68,2,61,2"
VerticalAlignment="Center">
<Image.Style>
<Style>
<Setter Property="Image.Source">
<Setter.Value>
<Binding Source="{x:Static res:AppResources.ok}">
<Binding.Converter>
<Helpers:IconToImageSourceConverter />
</Binding.Converter>
</Binding>
</Setter.Value>
</Setter>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True" />
<Condition Binding="{Binding Path=AutoUpdateStatusIcon}" Value="ok" />
</MultiDataTrigger.Conditions>
<Setter Property="Image.Source">
<Setter.Value>
<Binding Source="{x:Static res:AppResources.ok_glow}">
<Binding.Converter>
<Helpers:IconToImageSourceConverter />
</Binding.Converter>
</Binding>
</Setter.Value>
</Setter>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
最佳答案
一种简单的方法是根据 z 顺序正确对齐元素。如果您可以将图像移到后面,并将要单击的元素放在顶部,您就可以轻松地完成这项工作。此外,让事情变得有点透明,你看到的图像比顶部的元素更多,这将使用户体验无缝。
当然,你需要使用像Grid这样的容器,它可以在样本平面中添加多个元素。
-法哈德
关于wpf - 点击图像但仍然响应鼠标悬停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5822667/