Đây là cách tôi tắt hiệu ứng di chuột trực quan trên các nút. Tôi đã để lại một số cài đặt của tôi chỉ để giúp bạn có cảm giác về cách chơi với trình kích hoạt và nội dung, cảm thấy tự do để thử nghiệm!
<Style TargetType="Button" x:Key="ImageButton" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="border"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="5"
Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="Gainsboro" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Opacity" Value="0.25" />
<Setter Property="BorderBrush" Value="Transparent" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
CHỈNH SỬA: Sử dụng cài đặt "BasedOn" + FocusVisualStyle thành null (2 dòng đầu tiên) sẽ loại bỏ hiệu ứng chuột. Mọi thứ khác chỉ là ví dụ. Tôi đã thêm một đường viền ở đó để chơi với nó thông qua một trigger (vì tôi muốn có hiệu ứng di chuột tùy chỉnh).
Có vẻ như bạn có trình kích hoạt sử dụng Trình quản lý trạng thái trực quan. Vui lòng cung cấp tất cả các xaml có liên quan. – Aphelion
thử điều này; http://stackoverflow.com/questions/1302756/why-is-the-buttons-background-changing pro-tip, nếu bạn không có danh tiếng để nhận xét, hãy đăng "câu trả lời trival" và xem điều gì xảy ra. –