簡體   English   中英

WPF按鈕的邊距在鼠標懸停時突出顯示

[英]Margins of wpf button are highlighted on mouseover

我是WPF的新手,但是我的問題很小。 我有一個XAML按鈕:

<Button  FontSize="17" Margin="15" Background="White" 
         BorderThickness="0" BorderBrush="#f6f6f6"
         FontWeight="DemiBold"
                   fluent:KeyTip.Keys="X"
                   CommandParameter="{Binding}"                                                               
                   Click="OnLoadPluginClick">                                                
    <Button.Effect>
        <DropShadowEffect Opacity="0.15"/>
    </Button.Effect>                                                
    <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
            <Border Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1"
                    Grid.Row="0" Margin="5,10,0,0"  Height="180" Width="180" VerticalAlignment="Top" 
                    Background="{TemplateBinding Background}"
                   HorizontalAlignment="Left" >
                <Grid Height="180" Width="180" >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Row="0" Margin="10,10,0,0" FontSize="15" FontStretch="ExtraCondensed" Height="20" VerticalAlignment="Top"
                   HorizontalAlignment="Left" Text="{Binding Name}" />
                    <Image Stretch="Uniform" Width="70" Height="70" Grid.Row="1" HorizontalAlignment="Center" 
               VerticalAlignment="Center" Source="{Binding ImageSource}" />
                </Grid>
            </Border>

            <ControlTemplate.Triggers>
                <Trigger Property="Button.IsPressed" Value="True">
                    <Setter TargetName="Border" Property="Background" Value="WhiteSmoke" />

                </Trigger>                                                            
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Effect">
                        <Setter.Value>
                            <DropShadowEffect ShadowDepth="0" Color="WhiteSmoke" Opacity="0.6" BlurRadius="20"/>
                        </Setter.Value>
                    </Setter>
                    <!--<Setter TargetName="Border" Property="Background" Value="LightGreen"></Setter>-->
                </Trigger>                                                            
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Button.Template>
</Button>

如您所見,我有自己的觸發器,但我無法實現所需的外觀(當鼠標處於按鈕上時的陰影)。 我得到這樣的東西:

WrongMarginHighlight

如您所見,我只有空白處用不明顯的灰色突出顯示...

我需要什么:當鼠標位於按鈕邊框上時,邊框會變得更大的陰影,當按下邊框時,其背景會設置為WhiteSmoke

像這樣的東西,但是有圖像: cancelButton

如何正確實現此按鈕?

如果有任何幫助,我將不勝感激。

在IsMouseOver觸發器的setter標記中設置TargetName = Border。 可能有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM