我找不到这个问题的简单答案。
我在WPF中创建了Button
并为其提供了背景图片。首先我的问题是边界,但后来我能够用
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
现在的问题是窗口MouseOver
效果是可见的。是否有一种简单的方法可以删除它?我尝试用Value
替换Image
。它工作但我无法再在按钮上设置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>
答案 0 :(得分:1)
我认为最好的方法是重新定义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>
答案 1 :(得分:0)
首先想到的是重新设计按钮的模板。在模板中,您将看到具有许多状态的VisualStateManager类。其中一个状态是MouseOver。在该MouseOver声明中,您可以放置任何想要使Button按您喜欢的方式显示的内容。例如,VisualStateManager中也应该有一些默认的可视状态,这样你就可以将declration从默认的可视状态复制到mouseover视觉状态,它们将是相同的。