一起搭WPF架构之按钮的进阶设计学习

news2024/11/19 22:43:56

一起搭WPF架构之按钮的进阶设计学习

  • 1 前言
  • 2 进阶设计
  • 3 问题解决
  • 总结


1 前言

《一起搭WPF架构之浅写View界面按钮的进阶设计》中介绍了按钮的简单设计到进阶设计,这次接着上次进阶设计来做进一步的介绍。


2 进阶设计

代码介绍:

<Window.Resources>
        <Style x:Key="CustomRadioButtonStyle" TargetType="RadioButton">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate  TargetType="RadioButton">
                        <Grid Background="Transparent" Height="50" Name="back">
                            <TextBlock Text="Click me!" FontSize="14" FontWeight="Bold" FontFamily="MV Boli"
                       HorizontalAlignment="Center" VerticalAlignment="Center"/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked" Value="True">
                                <Setter Property="Background" Value="#33FFFCC2" TargetName="back"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
  • Window.Resources——定义了窗口的资源字典,这里可以存放样式、数据模板等资源。新建项目中没有资源字典,需要手动添加。
  • Style——样式,常用TargetType表示定义什么控件的样式。
  • SetterTemplate结合——设置样式的模板属性。
  • ControlTemplate——自定义控件的外观和行为。这里是指定了 RadioButton 的外观和布局。
  • Grid——就是之前介绍过的网格,HorizontalAlignment="Center" VerticalAlignment="Center"表示水平和垂直对齐方式都设置为居中。
  • Triggers——定义了模板的触发器。

3 问题解决

介绍完style的设置,接着来解决上篇所提到的问题,我们在样式中采用了TextBlock控件,并统一命名为Text="Click me!" ,为了改变按钮的名称,我们可以这样做!
在这里插入图片描述

代码如下:

<TextBlock Text="{TemplateBinding Content}" FontSize="14" FontWeight="Bold" FontFamily="MV Boli"
                       HorizontalAlignment="Center" VerticalAlignment="Center"/>
  • 模板绑定(TemplateBinding)——将控件的某个属性(如 Content)绑定到模板中的某个属性上(如 TextBlock.Text
    在使用style时,我们可以单独设置Content,改变其设定值。
    代码如下:
<RadioButton Grid.Row="1"  GroupName="1" Content="1" Style="{StaticResource CustomRadioButtonStyle}"/>
<RadioButton Grid.Row="2"  GroupName="1" Content="2" Style="{StaticResource CustomRadioButtonStyle}"/>
<RadioButton Grid.Row="3"  GroupName="1" Content="3" Style="{StaticResource CustomRadioButtonStyle}"/>

具体效果如下:
在这里插入图片描述
我们将RadioButtonContent重新赋值,可以解决问题。
前提是需要把style中的TextBlock.Text与Content进行绑定!


总结

本文介绍了style的使用,并解决上一篇的遗留问题,对于采用模板绑定将需要的控件属性进行绑定就可以解决问题!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2177379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年9月25日--- Spring-IOC 1

一 Spring的概要 1.1 简介 Spring&#xff0c;春天的意思&#xff0c;意指给软件行业带来春天。2002年&#xff0c;Rod Jahnson首次推出了Spring框架雏形interface21框架。2004年3月24日&#xff0c;Spring框架以interface21框架为基础&#xff0c;经过重新设计&#xff0c;发…

ABAP 记一次 ref_tabname/REF_TABNAME引起的问题

自开发alv报表 过滤器 过滤器存在问题&#xff1a; 分析&#xff1a; 过滤不出来&#xff0c;说明2个值不相等&#xff0c;刚好是物料&#xff0c;应该是前导0的问题&#xff0c;加入* 可以了&#xff0c;但是搜索过滤的长度又不够&#xff0c;那应该是参考的问题 于是果断在…

枫叶冒险岛网页版单机联网安装教程+GM后台

今天给大家带来一款单机游戏的架设&#xff1a;枫叶冒险岛。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。教程是本人亲自搭建成功的&#xff0c;绝对是完整可运行…

【docker】如何保存镜像以及分享社区

一、前言 在上篇博客中&#xff0c;我们已经下载了一个nginx的镜像&#xff0c;并且修改了它的内容为“111222”&#xff0c;命名为mynginx&#xff0c;现在我们就要把这个mynginx保存下来&#xff0c;并且分享但我们的docker_hub社区中&#xff01; 二、保存镜像 1、常用命名…

Notion is all you need(文献管理利器)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;科研杂谈_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. …

融云出海:电商、社交泛娱的破局之道

“出海不出局”融云出海系列城市沙龙进度条过半&#xff0c;已相继在上海、北京、深圳、杭州四地&#xff0c;与数百位出海人相聚。 系列活动邀请业内兼具理论研究和实操经验的专家&#xff0c;针对电商、社交泛娱乐出海、安全合规等话题为与会出海人提供了宝贵的第一手资料。…

低代码统一代办系统:提升工作效率的新利器

什么是低代码统一代办系统&#xff1f; 低代码统一代办系统是通过低代码开发平台构建的一种工具&#xff0c;用于集中管理和跟踪团队成员的任务和待办事项。该系统具有可视化设计、模块化组件和灵活性&#xff0c;能够快速适应不同团队和项目的需求&#xff0c;提高工作效率。…

水泵模块(5V STM32)

目录 一、介绍 二、传感器原理 1.尺寸介绍 2.继电器控制水泵电路原理图 三、程序设计 main.c文件 bump.h文件 bump.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 水泵模块(bump)通常是指用于液体输送系统的组件&#xff0c;它负责将水或其他流体从低处提…

SpringBoot中各种O的分层模型

文章目录 领域模型中的实体类概念&#xff1a;项目中的实体类rest api中的model&#xff0c; vo&#xff0c; dto之间的关系凤凰架构讲课笔记 设计模式的单一职责&#xff1a; 各种XXO Pojo: 普通Java类Dao&#xff1a;Database Access Object&#xff1a; 专门用来访问数据库…

游戏账号系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;卖家管理&#xff0c;游戏类别管理&#xff0c;游戏账号管理&#xff0c;站内联系管理&#xff0c;交易订单管理&#xff0c;帐号退货管理 微信端账号功能包括&#xff1a;系统首…

webshell-HTTP常见特征

一、总体特点 二、蚁剑 数据中可以看到一些明文字符串函数&#xff0c;响应中可以看到响应的明文数据。 ant特征以及对数据base64可以解码 chr类别的会出现大量的chr编码 大量的百分号字符 三、哥斯拉 第一个请求包很大 响应为0 密钥被拆分到数据前后 响应包cookie带&#xf…

长文本溢出,中间位置显示省略号

1.说明 Flutter支持在文本末尾显示溢出省略号。现在想要实现在文本中间位置显示省略号&#xff0c;这里使用的方法是通过TextPainter计算文本宽度。&#xff08;我目前没有找到更好的方法&#xff0c;欢迎大家指教。&#xff09; 2.效果 源码 1.MiddleEllipsisTextPainter …

【无人机设计与控制】基于MATLAB的四旋翼无人机PID控制动力学建模研究制

摘要 本文研究了基于MATLAB的四旋翼无人机动力学建模和PID控制器设计。通过在Simulink中搭建四旋翼无人机的动力学模型&#xff0c;并结合经典PID控制算法&#xff0c;设计了无人机的姿态控制系统。实验结果表明&#xff0c;所设计的PID控制器能够有效稳定无人机的姿态&#x…

Gitlab 配置自动化Pipeline

在GitLab中配置CI/CD流水线&#xff08;pipeline&#xff09;以实现自动化构建和测试&#xff0c;你需要遵循以下步骤&#xff1a; 1. 创建 .gitlab-ci.yml 文件&#xff1a;在项目的根目录或子目录中创建一个名为 .gitlab-ci.yml 的文件&#xff0c;这是定义GitLab CI/CD流水…

JavaWeb之过滤器

1. 过滤器的概念 过滤器是Java Servlet规范中定义的组件&#xff0c;用于在请求到达Servlet之前或响应返回客户端之前&#xff0c;对请求或响应进行拦截和处理。过滤器可以实现以下功能&#xff1a; 日志记录&#xff1a;记录请求的详细信息&#xff0c;如URI、参数、时间等。…

Hugging Face + JuiceFS:多用户多节点环境下提升模型加载效率

Hugging Face 的 Transformers 是一个功能强大的机器学习框架&#xff0c;提供了一系列 API 和工具&#xff0c;用于预训练模型的下载和训练。为了避免重复下载&#xff0c;提高训练效率&#xff0c;Transformers 会自动下载和缓存模型的权重、词表等资源&#xff0c;默认存储在…

官方权威解读|CNAS-CL01过程部分解读,抽样部分

CNAS-CL01文件是软件测试实验室申请CNAS软件评测机构资质的重要参考材料&#xff0c;也是CNAS软件测试实验室建立质量管理体系的重要依据。近日CNAS为响应国家相关要求&#xff0c;组织开展了一系列专题调研。结合行业关注热点问题&#xff0c;推出了认可评审案例系列。前面的文…

macOS 新系统必知道:窗口分屏终于来了

对于很多从 Windows 转换到 macOS 的用户来说&#xff0c;最不习惯的一点可能就是窗口管理了。 Windows 系统自 Windows 7 开始就支持通过拖拽应用窗口至屏幕边缘来实现快速的分屏操作&#xff0c;到了 Windows 11 这一功能更是进化得更加灵活多变&#xff0c;允许用户根据需要…

临床常用的焦虑测评量表有哪些?

常笑医学整理了5个临床常用的焦虑测评量表&#xff0c;包括焦虑自评表&#xff08;SAS&#xff09;、状态-特质焦虑问卷&#xff08;STAI&#xff09;等。这些量表在常笑医学网均支持在线评估、下载和创建项目使用。 01 焦虑自评表&#xff08;SAS&#xff09; &#xff08;完…

ECCV 2024 | 融合跨模态先验与扩散模型,快手处理大模型让视频画面更清晰!

计算机视觉领域顶级会议 European Conference on Computer Vision&#xff08;ECCV 2024&#xff09;将于9月29日至10月4日在意大利米兰召开&#xff0c;快手音视频技术部联合清华大学所发表的题为《XPSR: Cross-modal Priors for Diffusion-based Image Super-Resolution》——…