在日常开发中,WPF系统中自带的一些控件无法满足开发要求,且在开发过程中,同类型的控件使用的频率较高,需要通过创建用户控件来节省开发时间,简化开发过程,现以Button的开发为例.
1.首先创建一个用户控件
与MainWindow类似分为两个代码区,xaml和xaml.cs
2.在xaml中可以简单编写一个样式
代码如下:
<Grid Background="#FF3F0A5F" >
<Button x:Name="Anniu" Background="#FF5E58A2" Command="{Binding ShuXing, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:ButtonStyle}}}"
MouseEnter="Button_MouseEnter" MouseLeave="Button_MouseLeave" Padding="0,0,0,0" BorderThickness="0,0,0,0">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="#FF5E58A2" CornerRadius="20" Padding="20 0 20 0"
BorderThickness="5 0 0 0" MouseEnter="Border_MouseEnter" MouseLeave="Border_MouseLeave">
<Border.BorderBrush>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#D489FF" Offset="0" />
<GradientStop Color="#7985FF" Offset="0.5" />
<GradientStop Color="#6AD8FD" Offset="1" />
</LinearGradientBrush>
</Border.BorderBrush>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
3.在xaml.cs中可以编写一些属性代码
public partial class ButtonStyle : UserControl
{
public string ShuXing { get; set; } = "dsa";
private Brush originalBackgroundColor;
public ButtonStyle()
{
InitializeComponent();
originalBackgroundColor = Anniu.Background;
}
private void Button_MouseEnter(object sender, MouseEventArgs e)
{
(sender as Button).Background = Brushes.LightBlue;
}
private void Button_MouseLeave(object sender, MouseEventArgs e)
{
if (sender is Button button)
{
button.Background = originalBackgroundColor;
}
}
private void Border_MouseEnter(object sender, MouseEventArgs e)
{
(sender as Border).Background = Brushes.LightBlue;
}
private void Border_MouseLeave(object sender, MouseEventArgs e)
{
if (sender is Border border)
{
border.Background = originalBackgroundColor;
}
}
}
4.生产的代码可以在主页面进行使用
5.通过一下绑定可以在使用时进行一些属性更改