0

我只想使图像变灰而不是整个按钮。原因是按钮上的图像是部分透明的,所以当整个按钮变灰时,它看起来很奇怪。

在下图中,您可以看到整个按钮变灰,而不仅仅是可见图像

完全变灰的按钮

相关... sorta:在 Silverlight 中禁用带有自定义内容的按钮?

4

1 回答 1

0

您将需要为您的按钮覆盖 ControlTemplate。怎么做?

  1. 创造新风格
  2. 在该样式中定义 ControlTemplate
  3. ControlTemplate 查找名为“已禁用”的视觉状态的定义
  4. 更改它,使其仅更改图像,而不会使整个按钮变灰。

这些是控件模板的相关部分

<ControlTemplate TargetType="Button">
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="CommonStates">
            <!-- other states go here -->
            <VisualState x:Name="Disabled">
                <Storyboard>
                    <DoubleAnimation Duration="0" 
                                     Storyboard.TargetName="DisabledImage"  
                                     Storyboard.TargetProperty="Opacity" To="1"/>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <!-- rest of the template goes here -->
</ControlTemplate>

然后,DisabledImage您在可视状态管理器中引用的内容将需要完全覆盖启用按钮上显示的图像,以便在禁用时,用户只能看到变灰的图像。

于 2013-10-21T12:22:52.620 回答