Theo this post, rằng phim hoạt hình ưa thích được xây dựng vào và để loại bỏ nó, bạn sẽ cần phải ghi đè lên ControlTemplate
cho Button
của bạn. May mắn thay, điều đó không quá khó. Tôi đã sử dụng this post làm tài liệu nguồn và đã đưa ra Style
sau đây cung cấp cho bạn ý tưởng.
<Style x:Key="MouseOverButtonStyle" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<ControlTemplate.Resources>
<Style x:Key="ShadowStyle">
<Setter Property="Control.Foreground" Value="LightGray" />
</Style>
</ControlTemplate.Resources>
<Border Name="border" BorderThickness="1" Padding="4,2" BorderBrush="DarkGray" CornerRadius="3" Background="{TemplateBinding Background}">
<Grid >
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Name="contentShadow" Style="{StaticResource ShadowStyle}">
<ContentPresenter.RenderTransform>
<TranslateTransform X="1.0" Y="1.0" />
</ContentPresenter.RenderTransform>
</ContentPresenter>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Name="content"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Beige" />
</Trigger>
</Style.Triggers>
</Style>
Cập nhật: Nếu bạn chết đặt trên áp dụng Style
trong mã và bạn không muốn sử dụng một (có lẽ là cách tốt hơn để làm điều đó) ResourceDictionary
, bạn có thể tải các Style
động sử dụng XamlReader.Load
:
const string xaml = @"
<Style xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
TargetType='Button'>
<Setter Property='Template'>
<!--- Omitted For Clarity --->
</Setter>
<Style.Triggers>
<Trigger Property='IsMouseOver' Value='True'>
<Setter Property='Background' Value='Beige' />
</Trigger>
</Style.Triggers>
</Style>";
var encoding = new ASCIIEncoding();
var bytes = encoding.GetBytes(xaml);
var style = (Style)XamlReader.Load(new MemoryStream(bytes));
Button1.Style = style;
Nguồn
2010-04-22 01:08:01
Tôi biết tôi có thể thực hiện việc này thông qua xaml nhưng không thể thực hiện được thông qua C# ??? – Luiscencio
Bạn có thể đặt phong cách trong từ điển tài nguyên và sau đó kéo nó ra khi cần để áp dụng cho nút của bạn. –
+1 Tôi sẽ thử cập nhật của bạn, có vẻ đầy hứa hẹn nhờ – Luiscencio