【问题标题】:WPF Button Image when mouseover and/or disabled鼠标悬停和/或禁用时的 WPF 按钮图像
【发布时间】:2017-06-09 11:31:44
【问题描述】:

我正在尝试设置按钮的样式,以便在启用按钮而不是鼠标悬停时显示默认图像,当启用按钮并且鼠标悬停时显示不同的图像,并且在禁用时(无论鼠标悬停如何)显示一个第三张图片。

我尝试遵循这个answer,但是当我运行我的程序时,我收到Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' threw an exception.' Line number '47' and line position '45'. 的错误,这相当于下面sn-p 中<--- 标识的行:

        <!-- Edit Button using edit.png (pencil) -->
        <Style x:Key="PencilEditEnabledButtonStyle" TargetType="{x:Type Button}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border HorizontalAlignment="Center"
                                VerticalAlignment="Center">
                            <!-- default image -->
                            <Image x:Name="ButtonImage" 
                                   Source="/myLibrary;component/Resources/edit.png"
                                   Height="20"/>
                        </Border>

                        <ControlTemplate.Triggers>
                            <!-- update image on mouseover -->
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter TargetName="ButtonImage" 
                                        Property="Source"
                                        Value="/myLibrary;component/Resources/edit_mouseover.png" />
                            </Trigger>

                            <!-- update image when button is disabled -->
                            <Trigger Property="IsEnabled" Value="true">
                                <Setter TargetName="ButtonImage"             <---
                                        Property="Source"
                                        Value="/myLibrary;component/Resources/edit_disabled.png" />
                            </Trigger>                                

                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

这可能吗?如果可以,我该如何更正Style

【问题讨论】:

    标签: wpf button triggers styles controltemplate


    【解决方案1】:

    您是否已将“资源”文件夹包含到您的项目中?

    • 点击解决方案资源管理器中的显示所有文件图标。
    • 右键单击新出现的“资源”文件夹。
    • 点击“包含在项目中”。
    • 重建并运行。

    【讨论】:

    • 我确实通过单独使用每个图像来验证所有图像是否可用。
    • 我通过仅更改图像的源来测试您的代码,并且能够成功实现您的行为。您可以创建一个示例并上传它,以便我查看问题吗? 另外,这里你应该把Value改成false:
    • 这是我必须更改的 Value="true" 才能完成这项工作,愚蠢的错误。如果您想将此作为答案,我会将其标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    相关资源
    最近更新 更多