WPF中的按钮图像未禁用 [英] Button Image in WPF is not getting disabled

查看:49
本文介绍了WPF中的按钮图像未禁用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在按钮中使用图片...

I am trying to use an Image in my Button...

<Button Name="AButton" Margin="101,140,96,90" IsEnabled="False">
           <Image Source="file:///F:/WPF/ImageButton/ImageButton/Resources/imgtest.jpg" Height="40" Width="53" ></Image>
       </Button>




但是当我将按钮保留为禁用状态时,图像仍看起来像已启用



有没有一种方法可以使图像看起来也像Disabled




But when i Keep the button as disabled image is still looking like enabled



Is there a way to make the Image also look like disabled

推荐答案

设置某种样式,即当按钮可见性为Disabled时,可以给图像带来一些褪色效果

我已经使用了单选按钮,您可以将其设置为按钮

Set some style, in that give some fade effect to image when the button visibility is Disabled

I have used radio button you can set the same to button

<pre lang="xml"><RadioButton x:Name="rdo" IsTabStop="False" GroupName="CardTypeCommands" Command="{Binding Path=FilterCommand}" CommandParameter="{Binding Path=Card}" IsChecked="{Binding Path=IsSelected, Mode=TwoWay}" Background="{x:Null}" BorderBrush="{x:Null}" Foreground="{x:Null}">
        <RadioButton.Template>
            <ControlTemplate TargetType="{x:Type RadioButton}">
                <Border Height="70" Width="90" Margin="0,0,0,0" BorderBrush="#FF2F2E2E" BorderThickness="1,1,1,1" Padding="0,0,0,0" x:Name="border" ClipToBounds="True" Visibility="Visible" CornerRadius="7,0,7,7" RenderTransformOrigin="0.5,0.5">
                    <Border.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1" ScaleY="1" />
                        </TransformGroup>
                    </Border.RenderTransform>
                    <Border.Background>
                        <LinearGradientBrush EndPoint="0.016,0.137" StartPoint="0.965,0.695">
                            <GradientStop Color="#FF000000" Offset="0.147" />
                            <GradientStop Color="#FFA9A9A9" Offset="1" />
                        </LinearGradientBrush>
                    </Border.Background>
                    <Grid>
                        <Image Stretch="None" Source="{Binding Path=Card.ImagePath}" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" />
                        <Border Visibility="Visible" Background="#83000000" CornerRadius="7,0,7,7" x:Name="bdrDarken" d:IsHidden="True" />
                        <Path Stretch="Fill" Stroke="{x:Null}" StrokeThickness="0" Margin="-0.602,-0.41,-3.718,-0.043" ClipToBounds="True" SnapsToDevicePixels="True" Data="M87.662375,57.350326 C95.267257,46.41438 93.076933,29.003955 73.287821,17.875497 50.626197,5.1316741 -3.3563265,-0.55134758 9.0230928,-0.40740084 L81,0 C84.865993,0 86.639141,2.9035009 86.639141,6.7694941 L88.099592,61.63946 C88.099592,65.505453 84.865993,68 81,68 L6.212067,68.043329 C4.1990317,68.043329 2.6898495,67.068214 0.97145047,65.158821 0.34293053,64.460444 0.17465131,63.699125 -0.038209581,62.995195 -0.52407869,61.388428 -0.60180105,58.999307 -0.60180105,57.710834 z">
                            <Path.Fill>
                                <LinearGradientBrush EndPoint="0.278,0.121" StartPoint="0.535,0.728">
                                    <GradientStop Color="#FF000000" Offset="0.469" />
                                    <GradientStop Color="#FF606060" Offset="1" />
                                </LinearGradientBrush>
                            </Path.Fill>
                        </Path>
                        <Rectangle Fill="#FF000000" Stroke="#FF000000" RadiusX="7" RadiusY="7" VerticalAlignment="Bottom" Height="21" Opacity="0.36" StrokeThickness="1" Margin="0,0,0,0" Visibility="Visible" />
                        <TextBlock Text="{Binding Path=Card.Title}" Margin="0,3.5" HorizontalAlignment="Center" VerticalAlignment="Bottom" Foreground="#FFFFFFFF" />
                        <Button x:Name="btnAdd" Visibility="Collapsed" Margin="0,35,10,0" HorizontalAlignment="Right" VerticalAlignment="Top" IsTabStop="False" Command="{Binding Path=NewCommand}" CommandParameter="{Binding Path=Card}" ToolTip="Click to add this card type to the database.">
                            <Image Source="{StaticResource addImage}" Stretch="Uniform" Height="16" Width="16" />
                        </Button>
                    </Grid>
                </Border>
                <ControlTemplate.Triggers>
                    <MultiTrigger>
                        <MultiTrigger.Conditions>
                            <Condition Property="IsMouseOver" Value="True" />
                            <Condition Property="IsChecked" Value="False" />
                        </MultiTrigger.Conditions>
                        <MultiTrigger.EnterActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" To="1.1" />
                                    <DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" To="1.1" />
                                </Storyboard>
                            </BeginStoryboard>
                        </MultiTrigger.EnterActions>
                        <MultiTrigger.ExitActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" To="1" />
                                    <DoubleAnimation Duration="00:00:00.3" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" To="1" />
                                </Storyboard>
                            </BeginStoryboard>
                        </MultiTrigger.ExitActions>
                        <Setter Property="Visibility" TargetName="bdrDarken" Value="Collapsed" />
                    </MultiTrigger>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter Property="RenderTransform">
                            <Setter.Value>
                                <ScaleTransform ScaleX="1.1" ScaleY="1.1" />
                            </Setter.Value>
                        </Setter>
                        <Setter Property="Visibility" TargetName="bdrDarken" Value="Collapsed" />
                    </Trigger>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Visibility" TargetName="btnAdd" Value="Visible" />
                    </Trigger>
                    <!--<DataTrigger Binding="{Binding Path=Cards}" Value="True">
                        <Setter Property="Visibility" TargetName="btnAdd" Value="Collapsed" />
                    </DataTrigger>-->
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </RadioButton.Template>
    </RadioButton>






这篇关于WPF中的按钮图像未禁用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆