广告
返回顶部
首页 > 资讯 > 精选 >如何在C#项目中使用WPF自定义按钮
  • 630
分享到

如何在C#项目中使用WPF自定义按钮

2023-06-06 17:06:02 630人浏览 泡泡鱼
摘要

今天就跟大家聊聊有关如何在C#项目中使用WPF自定义按钮,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。实现效果使用图片做按钮背景;自定义鼠标进入时效果;自定义按压效果;自定义禁用效果

今天就跟大家聊聊有关如何在C#项目中使用WPF自定义按钮,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

实现效果

  1. 使用图片做按钮背景;

  2. 自定义鼠标进入时效果;

  3. 自定义按压效果;

  4. 自定义禁用效果

实现步骤

  1. 创建CustomButton.cs,继承自Button;

  2. 创建一个资源文件ButtonStyles.xaml;

  3. 在资源文件中设计按钮的Style;

  4. 在CustomButton.cs中添加Style中需要的依赖属性;

  5. 在程序中添加资源并引用(为了方便在不同的程序中引用自定义按钮,自定义按钮放在独立的类库中,应用程序中进行资源合并即可)。

示例代码

// ButtonStyles.xaml<Style x:Key="CustomButton" TargetType="{x:Type local:CustomButton}">  <Setter Property="Template">    <Setter.Value>      <ControlTemplate TargetType="{x:Type local:CustomButton}">        <Grid x:Name="container">          <Image Width="{TemplateBinding Width}" Height="{TemplateBinding Height}"               Source="{Binding ButtonImage,RelativeSource={RelativeSource Mode=TemplatedParent}}">            <Image.RenderTransfORMOrigin>              <Point X="0.5" Y="0.5"/>            </Image.RenderTransformOrigin>            <Image.RenderTransform>              <ScaleTransform x:Name="scaletrans" ScaleX="1" ScaleY="1"/>            </Image.RenderTransform>          </Image>        </Grid>        <ControlTemplate.Triggers>          <Trigger Property="IsEnabled" Value="False">            <Setter Property="Opacity" Value="0.5" TargetName="container"/>          </Trigger>          <Trigger Property="IsMouseOver" Value="True">            <Setter Property="Background" Value="#2c000000" TargetName="container"/>          </Trigger>          <Trigger Property="IsPressed" Value="True">            <Trigger.EnterActions>              <BeginStoryboard>                <Storyboard>                  <DoubleAnimation Storyboard.TargetName="scaletrans" Storyboard.TargetProperty="(ScaleTransform.ScaleX)"                   To="0.8" Duration="0:0:0.15" AutoReverse="True"/>                  <DoubleAnimation Storyboard.TargetName="scaletrans" Storyboard.TargetProperty="(ScaleTransform.ScaleY)"                   To="0.8" Duration="0:0:0.15" AutoReverse="True"/>                </Storyboard>              </BeginStoryboard>            </Trigger.EnterActions>          </Trigger>        </ControlTemplate.Triggers>      </ControlTemplate>    </Setter.Value>  </Setter></Style>// CustomButton.cspublic class CustomButton : Button{  public ImageSource ButtonImage  {    get { return (ImageSource)GetValue(ButtonImageProperty); }    set { SetValue(ButtonImageProperty, value); }  }  public static readonly DependencyProperty ButtonImageProperty =    DependencyProperty.ReGISter("ButtonImage", typeof(ImageSource), typeof(CustomButton),    new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataoptions.AffectsRender));}// App.xaml 合并资源<Application.Resources>  <ResourceDictionary>    <ResourceDictionary.MergedDictionaries>      <ResourceDictionary Source=".../ButtonStyles.xaml"/>    </ResourceDictionary.MergedDictionaries>  </ResourceDictionary>   </Application.Resources>// view.xaml 使用<Grid>  <customcontrols:CustomButton Width="48" Height="48"     Style="{StaticResource CustomButton}" ButtonImage="/Louzi.Paint;component/Images/Toolbar/write.png"/></Grid>

看完上述内容,你们对如何在C#项目中使用WPF自定义按钮有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 如何在C#项目中使用WPF自定义按钮

本文链接: https://www.lsjlt.com/news/247966.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在C#项目中使用WPF自定义按钮
    今天就跟大家聊聊有关如何在C#项目中使用WPF自定义按钮,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。实现效果使用图片做按钮背景;自定义鼠标进入时效果;自定义按压效果;自定义禁用效果...
    99+
    2023-06-06
  • 如何在Android项目中自定义title
    这篇文章给大家介绍如何在Android项目中自定义title,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先编写title的布局文件,title.xml:<xml version="1.0&...
    99+
    2023-05-31
    android roi title
  • 如何在Android项目中使用selector改变按钮状态
    如何在Android项目中使用selector改变按钮状态?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android 使用selector改变按钮状态实例详解在res/dra...
    99+
    2023-05-31
    android selector sel
  • 怎么在C++项目中利用priority_queue自定义排序
    这篇文章给大家介绍怎么在C++项目中利用priority_queue自定义排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先,无论 priority_queue 中存储的是基础数据类型(int、double 等),...
    99+
    2023-06-06
  • 如何在java 8项目中自定义collector
    本篇文章给大家分享的是有关如何在java 8项目中自定义collector,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。需求:将 一个容器List<Bean> 按照...
    99+
    2023-05-31
    java8 collector ava
  • 如何在Android项目中自定义view函数
    如何在Android项目中自定义view函数 ?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先 往Canvas上面draw需要一个Paint。 Paint p ...
    99+
    2023-05-31
    android view roi
  • 在Spring Boot项目中如何实现自定义PropertySourceLoader
    今天就跟大家聊聊有关在Spring Boot项目中如何实现自定义PropertySourceLoader,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。SpringBoot 的配置文件...
    99+
    2023-05-31
    propertysourceloader springboot ce
  • 浅谈JAVA在项目中如何自定义异常
    JAVA项目中自定义异常 1.数据返回处理类 @Data public class R<T> implements Serializable { priv...
    99+
    2022-11-12
  • 在spring-boot项目中如何实现自定义filter
    在spring-boot项目中如何实现自定义filter?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。传统的javaEE增加Filter是在web.xml中配置...
    99+
    2023-05-31
    springboot 自定义 filter
  • 如何在Android项目中自定义侧滑菜单栏
    本篇文章给大家分享的是有关如何在Android项目中自定义侧滑菜单栏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。自定义侧滑菜单的简单实现不少APP中都有这种侧滑菜单,例如QQ...
    99+
    2023-05-31
    android roi 目中
  • 在iview+vue项目中使用自定义icon图标方式
    目录1. UI设计师会把自己做的图标库上传到阿里巴巴图标库2. 到购物车中点击添加至项目3. 给项目起个名字4. 把下面这些文件放到我的项目的static中5. 在main.js中全...
    99+
    2022-11-13
  • 在iview+vue项目中怎么使用自定义icon图标
    这篇文章主要讲解了“在iview+vue项目中怎么使用自定义icon图标”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在iview+vue项目中怎么使用自定义icon图标”吧!1. UI设计...
    99+
    2023-06-29
  • 如何在Android项目中创建一个自定义控件
    本篇文章为大家展示了如何在Android项目中创建一个自定义控件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。仿iPhone 的风格,在界面的顶部放置一个标题栏。<&#63;xml v...
    99+
    2023-05-31
    android roi 目中
  • WPF中用户控件和自定义控件如何使用
    本篇内容主要讲解“WPF中用户控件和自定义控件如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WPF中用户控件和自定义控件如何使用”吧!介绍无论是在WPF中还是WinForm中,都有用户控...
    99+
    2023-07-05
  • Polly如何在c#项目中使用
    今天就跟大家聊聊有关Polly如何在c#项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Polly是一个C#实现的弹性瞬时错误处理库它可以帮助我们做一些容错模式处理,比如:超...
    99+
    2023-06-14
  • 如何在C#项目中使用继承
    如何在C#项目中使用继承?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。声明一个抽象类//基类    abstract clas...
    99+
    2023-06-15
  • 如何在MySQL中使用C#编写自定义函数
    在MySQL中使用C#编写自定义函数需要以下步骤:1. 创建一个C#类库项目,并添加对MySQL.Data.dll的引用。2. 在C...
    99+
    2023-10-20
    MySQL
  • 如何在SpringBoot项目中的自定义配置添加IDE支持
    这篇文章将为大家详细讲解有关如何在SpringBoot项目中的自定义配置添加IDE支持,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Application.java:application....
    99+
    2023-06-06
  • 使用 NPM 在您的 Go 项目中安装自定义数据类型
    在 Go 编程中,我们经常会使用自定义数据类型来定义我们的数据模型。但是,在某些情况下,我们可能需要使用其他语言或库中的自定义数据类型。在这种情况下,我们可以使用 NPM(Node Package Manager)来安装这些自定义数据类型...
    99+
    2023-09-03
    数据类型 npm ide
  • 如何在python项目中使用Protobuf定义消息的类型
    这期内容当中小编将会给大家带来有关如何在python项目中使用Protobuf定义消息的类型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作