Oli*_*ham 1 c# wpf mouseover wpfdatagrid datagridtemplatecolumn
我有一个datatemplate用于datagridtemplatecolumn
我试图在鼠标悬停在Image.
鼠标悬停时,光标在变化,但图像没有变化。
<DataTemplate x:Key="MyDataTemplate" DataType="DataRowView">
<StackPanel Orientation="Horizontal" Background="Transparent">
<Image Margin="0,0,0,0" Width="50" Height="50" Source="{Binding Converter={StaticResource SetImgToDG}}" ToolTip="{Binding}" >
<Image.Resources>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<!-- Hover image -->
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Source" Value="C:\Images\Coil3.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Resources>
</Image>
</StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
那个绑定会产生问题吗?
怎么解决??
您的问题是图像的初始源是直接在Source图像实例的属性上定义的。
当有多个事物试图设置依赖属性的值时,框架必须决定使用哪个值。
在您的情况下,该值是直接在图像实例(本地)上设置的,也由Trigger.
在这种情况下,本地值将始终获胜,因此Trigger激活时不会发生任何事情。
如果您在样式中设置初始值,则Trigger当它尝试更改图像源时将获胜,并且当鼠标悬停在其上时将使图像更改。
您可以Dependency Property在MSDN上阅读有关如何解析a 值的更多信息。
<Image.Resources>
<Style TargetType="{x:Type Image}">
<!-- Set the initial source in the style so the trigger can change it -->
<Setter Property="Source" Value="{Binding Converter={StaticResource SetImgToDG}}" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<!-- Hover image -->
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Source" Value="C:\Images\Coil3.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Resources>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3723 次 |
| 最近记录: |