[英]Remove mouseover effect of WPF Button
我找不到這個問題的簡單答案。
我在WPF中創建了一個Button
並為其提供了背景圖片。 首先,我的問題是邊界,但是后來我能夠使用
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
現在的問題是Windows 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>
我認為最好的方法是重新定義按鈕ControlTemplate。 這是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>
首先想到的是重新設計按鈕的模板。 在模板中,您將看到帶有很多狀態的VisualStateManager類。 這些狀態之一是MouseOver。 在該MouseOver聲明中,您可以放置任何想要使Button看起來像您想要的樣子的東西。 例如,在VisualStateManager中還應該有一些默認的視覺狀態,因此您可以將默認狀態下的磁偏角復制到鼠標懸停的視覺狀態上,它們將是相同的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.