WPF用户控件(WPF)UserControl的开发与使用

       在日常开发中,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.通过一下绑定可以在使用时进行一些属性更改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值