禁用按钮鼠标效果

  • 本文关键字:鼠标 按钮 wpf
  • 更新时间 :
  • 英文 :


我有一个带有背景图像的WPPF按钮。

当我在背景上鼠标时将为空并且显示一个按钮。

如何禁用鼠标效果?

<Button BorderBrush="{x:Null}" Content="Reset" BorderThickness="0"Foreground="White" Focusable="False">
                        <Button.Background>
                            <ImageBrush ImageSource="button.png" />
                        </Button.Background>

这是我如何禁用视觉鼠标对按钮的影响。我离开了一些设置,只是为了让您感觉如何与触发器和东西一起玩,可以随意进行实验!

<Style TargetType="Button" x:Key="ImageButton" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
    <Setter Property="FocusVisualStyle" Value="{x:Null}" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border Name="border" 
                        BorderThickness="{TemplateBinding BorderThickness}"
                        Padding="{TemplateBinding Padding}" 
                        BorderBrush="{TemplateBinding BorderBrush}" 
                        CornerRadius="5"
                        Background="{TemplateBinding Background}">
                    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="BorderBrush" Value="Gainsboro" />
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Opacity" Value="0.25" />
                        <Setter Property="BorderBrush" Value="Transparent" />
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

编辑:使用"基于基础" 设置焦点为null(前2行)可以摆脱鼠标的效果。其他一切都是例子。我在那里添加了一个边框,以通过触发器播放它(因为我想要自定义的鼠标效果)。

ButtonControlTemplate中您可以重做整个ControlTemplate并忽略背景更改,也可以将图像添加为Button的内容,以避免所有这些并发症:

<Button.Content>
    <Image Source="button.png" />
</Button.Content>

或者还需要其中的文字:

<Button.Content>
    <Grid>
        <Image Source="button.png" />
        <TextBlock Text="Reset" VerticalAlignment="Center" HorizontalAlignment="Center" />
    <Grid>
</Button.Content>

最新更新