【问题标题】:Remove mouseover effect of WPF Button删除 WPF 按钮的鼠标悬停效果
【发布时间】:2013-01-17 13:33:32
【问题描述】:

我找不到这个问题的简单答案。

我在 WPF 中创建了一个Button 并给它一个背景图像。首先我的问题是边框,但后来我可以用

Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"

现在的问题是窗口MouseOver 效果是可见的。有没有简单的方法可以去除?我试图用Image 替换Value。它有效,但我无法再在按钮上设置Text

<Button x:Name="gameBtnAnswer1" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Cursor="Hand" Padding="-4" Margin="0,0,18,0" Height="38" Width="336" HorizontalAlignment="Left" FontSize="16" Foreground="White" Click="gameBtnAnswer1_Click" BorderThickness="0" Focusable="False">
    <Button.Background>
        <ImageBrush ImageSource="themes/blue/button_answer.png" Stretch="None" TileMode="Tile"/>
    </Button.Background>
    <Button.Content>
        Hier steht die Antwort #1
    </Button.Content>
</Button>

【问题讨论】:

标签: c# wpf xaml wpf-controls mouseover


【解决方案1】:

首先想到的是重新设计按钮的模板。在模板中,您将看到具有很多状态的 VisualStateManager 类。其中一种状态是 MouseOver。在那个 MouseOver 声明中,你可以放任何你想要的东西,使 Button 看起来像你喜欢的样子。例如,该 VisualStateManager 中还应该有一些默认的视觉状态,因此您可以将声明从默认视觉状态复制到鼠标悬停视觉状态,它们将是相同的。

【讨论】:

    【解决方案2】:

    我认为最好的方法是重新定义按钮 ControlTemplate。 Here the msdn doc.

    没有触发器的示例模板:

    <Style TargetType="Button">
      <Setter Property="SnapsToDevicePixels" Value="true"/>
      <Setter Property="OverridesDefaultStyle" Value="true"/>
      <Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/>
      <Setter Property="MinHeight" Value="23"/>
      <Setter Property="MinWidth" Value="75"/>
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="Button">
            <Border 
              x:Name="Border"  
              CornerRadius="2" 
              BorderThickness="1"
              Background="{StaticResource NormalBrush}"
              BorderBrush="{StaticResource NormalBorderBrush}">
              <ContentPresenter 
                Margin="2"
                HorizontalAlignment="Center"
                VerticalAlignment="Center"
                RecognizesAccessKey="True"/>
            </Border>
            <ControlTemplate.Triggers>
    
    
    
    
            </ControlTemplate.Triggers>
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
    

    【讨论】:

      猜你喜欢
      • 2011-04-20
      • 2013-06-15
      • 2011-06-20
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多