【问题标题】:Showing different image on mouse over in WPF Image在 WPF 图像中鼠标悬停时显示不同的图像
【发布时间】:2012-12-16 01:03:54
【问题描述】:

我有一个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>  

这种绑定会造成问题吗??
怎么解决??

【问题讨论】:

  • 如果你使用` `我的意思是Property="Image.Source" 怎么样?
  • 我试过了。结果还是一样。还有什么建议吗??

标签: c# wpf wpfdatagrid mouseover datagridtemplatecolumn


【解决方案1】:

您的问题是图像的初始源是直接在图像实例的Source 属性上定义的。

当有多个事物试图设置依赖属性的值时,框架必须决定使用哪个值。

在您的情况下,该值是直接在图像实例(本地)上设置的,也可以通过 Trigger 设置。
在这种情况下,本地值将始终获胜,因此在激活 Trigger 时不会发生任何事情。

如果您在样式中设置初始值,Trigger 将在尝试更改图像源时获胜,并且当鼠标悬停在其上时图像会发生更改。

您可以在MSDN 上阅读有关如何解析Dependency Property 的值的更多信息。

<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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2017-01-26
    • 2011-02-09
    相关资源
    最近更新 更多