2017-03-29 20 views
2

這裏是我設計的一個按鈕,但是我意識到,當按鈕被鼠標懸停/選擇或者類似的東西時,使用應用程序的人沒有辦法注意到? 我只是想要某種類型的通知,當選擇按鈕或任何? 任何類型的解決方案對我來說都是可以接受的,所以如果按鈕是鼠標懸停的話,或者如果選擇了按鈕來注意用戶 那個按鈕!當默認按鈕或鼠標懸停在按鈕上時,如何將某種類型的高亮設置設置爲按鈕?

這裏是我當前按鈕:

<Button x:Name="btnOk" 
        SnapsToDevicePixels="True" 
        UseLayoutRounding="True" 
        IsDefault="True" 
        Grid.Row="2" 
        Grid.Column="1" 
        FontSize="15" 
        Width="140" 
        BorderThickness="1" 
        HorizontalContentAlignment="Center" 
        VerticalContentAlignment="Center" 
        Foreground="#0091EA" 
        Background="White" 
        Content="Ok!" 
        BorderBrush="#0091EA" Margin="5,10,0,10" HorizontalAlignment="Left" Click="btnPotvrdi_Click"> 
      <Button.Style> 
       <Style TargetType="{x:Type Button}"> 
        <Style.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Background" Value="BlueViolet"/> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </Button.Style> 
      <Button.Template> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <Border BorderThickness="{TemplateBinding BorderThickness}" 
           BorderBrush="{TemplateBinding BorderBrush}" 
           Background="{TemplateBinding Background}"> 
         <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
            VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> 
        </Border> 
       </ControlTemplate> 

      </Button.Template> 

     </Button> 
+1

可能重複[Changing Default Bu tton突出顯示WPF](http://stackoverflow.com/questions/39118429/changing-default-button-highlighting-wpf) –

+0

@NeerajKumar它不是重複的,我應用了該鏈接的解決方案,但它不工作如此遺忘某些事情是錯誤的在我的代碼.. –

回答

1

指定在Style默認的背景(White),你的觸發器將如預期:

<Button x:Name="btnOk" 
        SnapsToDevicePixels="True" 
        UseLayoutRounding="True" 
        IsDefault="True" 
        Grid.Row="2" 
        Grid.Column="1" 
        FontSize="15" 
        Width="140" 
        BorderThickness="1" 
        HorizontalContentAlignment="Center" 
        VerticalContentAlignment="Center" 
        Foreground="#0091EA" 
        Content="Ok!" 
        BorderBrush="#0091EA" Margin="5,10,0,10" HorizontalAlignment="Left" Click="btnPotvrdi_Click"> 
    <Button.Style> 
     <Style TargetType="{x:Type Button}"> 
      <Setter Property="Background" Value="White" /> 
      <Style.Triggers> 
       <Trigger Property="IsFocused" Value="True"> 
        <Setter Property="Background" Value="Green"/> 
       </Trigger> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="BlueViolet"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 
    <Button.Template> 
     <ControlTemplate TargetType="{x:Type Button}"> 
      <Border BorderThickness="{TemplateBinding BorderThickness}" 
           BorderBrush="{TemplateBinding BorderBrush}" 
           Background="{TemplateBinding Background}"> 
       <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
            VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> 
      </Border> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 

「本地」值優先由Setter設置的值Stylehttps://msdn.microsoft.com/en-us/library/ms743230(v=vs.110).aspx

+0

其實我的例子是好的,但我有問題因爲我沒有把我的Button.Style背景屬性,所以按鈕是白色的所有時間,我看不到變化 –

+0

和btw我怎麼能第一次進入點擊,而窗口與按鈕打開只需選擇按鈕,而不觸發觸發器,所以實際上用戶應該擊中輸入兩次擊中觸發btnOk –

+0

請不要在評論欄中提出其他問題。如果您有其他問題,請提出新問題。 – mm8