WPF自定义控件的应用(DynamicResource的使用方法)
1 DynamicResource的使用方法
可以在字典文件 的抬头区写入数:
<SolidColorBrush x:Key="PrimaryBackgroundColor" Color="#FFABAdB3"/><SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/><SolidColorBrush x:Key="TextSecundaryColor" Color="#FF569DE5"/>
设定好颜色:
则引用时直接使用:
BorderBrush="{DynamicResource PrimaryBackgroundColor}"
另一种方式 引用 fontFamily 的方式与此相似
<FontFamily x:Key="HgFont">../../CommonInMy/Fonts/#iconfont</FontFamily>
当然这个只是写在
节点下,如果想整个项目都用这个链接方法就是直接写在 app.xaml 下;
引用方式 FontFamily="{ DynamicResource HgFont}"
2 自定义控件(数据增减下拉操作)
2.1 控件本身类
public class UInputNumberTextBox : Control{ static UInputNumberTextBox(){DefaultStyleKeyProperty.OverrideMetadata(typeof(UInputNumberTextBox), new FrameworkPropertyMetadata(typeof(UInputNumberTextBox)));}private Button btnSubtract;private Button btnAdd;public int Text{get { return (int)GetValue(TextProperty); }set { SetValue(TextProperty, value); }}// Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc...public static readonly DependencyProperty TextProperty =DependencyProperty.Register("Text", typeof(int), typeof(UInputNumberTextBox), new PropertyMetadata(0));public override void OnApplyTemplate(){base.OnApplyTemplate();btnSubtract = GetTemplateChild("btnSubtract") as Button;if (btnSubtract != null){btnSubtract.Click += BtnSubtract_Click;}btnAdd = GetTemplateChild("btnAdd") as Button;if (btnAdd != null){btnAdd.Click += BtnAdd_Click;}}private void BtnAdd_Click(object sender, RoutedEventArgs e){UInputNumberTextBox inputText = this as UInputNumberTextBox;inputText.Text += 1;}private void BtnSubtract_Click(object sender, RoutedEventArgs e){UInputNumberTextBox inputText = this as UInputNumberTextBox;inputText.Text -= 1;}}
2.2 样式操作:
<SolidColorBrush x:Key="PrimaryBackgroundColor" Color="#FFCFD6E5"/><!--定义颜色--><SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/><SolidColorBrush x:Key="TextSecundaryColor" Color="#FF4E85BD"/><!--<FontFamily x:Key="TextSecundaryColor" fa="#FF569DE5"/>--><Style x:Key="ControNumberTB" TargetType="ControlSet:UInputNumberTextBox"><Setter Property="Background" Value="{DynamicResource PrimaryBackgroundColor}" /><Setter Property="SnapsToDevicePixels" Value="True" /><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ControlSet:UInputNumberTextBox"><BorderWidth="{TemplateBinding Width}"Height="{TemplateBinding Height}"BorderBrush="{DynamicResource PrimaryBackgroundColor}"BorderThickness="1"><StackPanel Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Orientation="Horizontal" ><Grid Width="{TemplateBinding Width}"><Grid.ColumnDefinitions><ColumnDefinition Width="*" /><ColumnDefinition Width="2*" /><ColumnDefinition Width="*" /></Grid.ColumnDefinitions><Buttonx:Name="btnSubtract"Grid.Column="0"Width="{TemplateBinding Height}"Height="{TemplateBinding Height}"HorizontalAlignment="Left"VerticalAlignment="Center"Background="{DynamicResource PrimaryBackgroundColor}"BorderThickness="0,0,0,0"Content=""Cursor="Hand"FocusVisualStyle="{x:Null}"FontFamily="{DynamicResource HgFont}"Foreground="{DynamicResource TextSecundaryColor}" /><!--减号--><TextBoxGrid.Column="1"HorizontalAlignment="Center"VerticalAlignment="Center"Background="Transparent"BorderThickness="0"FocusVisualStyle="{x:Null}"FontSize="{TemplateBinding FontSize}"Foreground="{TemplateBinding Foreground}"Text="{Binding Text, RelativeSource={RelativeSource AncestorType=ControlSet:UInputNumberTextBox}, Mode=TwoWay}" /><Buttonx:Name="btnAdd"Grid.Column="2"Width="{TemplateBinding Height}"Height="{TemplateBinding Height}"HorizontalAlignment="Right"VerticalAlignment="Center"Background="{DynamicResource PrimaryBackgroundColor}"BorderThickness="0,0,0,0"Content=""Cursor="Hand"FocusVisualStyle="{x:Null}"FontFamily="{ DynamicResource HgFont}"Foreground="{DynamicResource TextSecundaryColor}" /> <!--加号--></Grid></StackPanel></Border></ControlTemplate></Setter.Value></Setter></Style>
3.引用在界面XAML中。
引用地址:
xmlns:自定义 = ”clr-namespace:地址
xmlns:ControlSet="clr-namespace:海王牌位系统.CommonInMy.Controls"
引用
<ResourceDictionary Source="../../CommonInMy/Styles/UInputNumberTextBoxStyle.xaml"/>
界面定义,本关键字 加名称
<ControlSet:UInputNumberTextBox Grid.Row="6" Grid.Column="1" Width="200" Height="30" Margin="0,0,0,10" FontSize="16" Style="{DynamicResource ControNumberTB }" Text="1" />
本单元参考了
https://blog.csdn.net/hisxiwu/article/details/129886874
相关文章:

WPF自定义控件的应用(DynamicResource的使用方法)
1 DynamicResource的使用方法 可以在字典文件 的抬头区写入数: <SolidColorBrush x:Key"PrimaryBackgroundColor" Color"#FFABAdB3"/><SolidColorBrush x:Key"TextBox.MouseOver.Border" Color"#FF7EB4EA"/>&l…...
Postgresql数据库密码忘记的解决
当您忘记PostgreSQL数据库的密码时,可以通过以下步骤来重置密码。这些步骤在Windows和Linux操作系统上大体相同,但具体操作路径和命令可能有所不同。 步骤一:找到并修改pg_hba.conf文件 定位安装目录: Windows:通常在PostgreSQL的安装目录下的data文件夹中。Linux:位置可…...
Flink SQL 基础操作
Flink SQL是建立在Apache Flink之上的SQL处理引擎,它允许用户以SQL的方式处理流数据和批数据。以下是一些Flink SQL的基础操作: 一、环境准备 1.启动flink集群 ./start-cluster.sh启动sql-client ./sql-client.sh二、数据源定义 创建表(…...

海思AE模块Lines_per_500ms参数的意义
基础知识 1秒(S)1000毫秒(ms)1000_000微妙(s)1000_000_000纳秒(ns) 1GHz1000Mhz1000_000KHz1000_000_000Hz 1Hz1/s 抗频闪原理 海思AE模块参数中有一个LinesPer500ms的参数,意思为500ms对应的曝光行数。此个参数和抗频闪有关。 我们知道: 50HZ…...

【代码随想录】区间和——前缀和方法
本博文为《代码随想录》学习笔记,原文链接:代码随想录 题目 原题链接:58. 区间和(第九期模拟笔试) 题目描述 给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。 输入描述 第一行输入为…...
Bug 解决 | 前端项目无法正确安装依赖?
目录 1、网络问题 2、权限问题 3、版本冲突 4、缓存问题 5、依赖配置错误 6、系统环境问题 前端项目和后端项目一样,都需要用到很多第三方的类库依赖。目前基本上我们主流的前端项目都使用 Npm、Yarn 等包管理工具来管理项目依赖,正常情况下通过执…...

【mysql 第四篇章】bin log 的作用是啥呢?
一、redo Log 介绍 redo log 是一种偏向物理性质的重做日志,因为他里面记录类似的这样的东西,“对那个数据也中的什么记录,做了个什么修改”。它是 InnoDB 存储引擎特有的东西。 二、bin Log 日志 bin log 叫做归档日志,它里面…...

Linux 操作系统:基于环形队列的生产者消费者模型
Linux 操作系统:基于环形队列的生产者消费者模型 一、前言二、大致框架二、P操作、V操作三、生产者生产数据四、生产者获取数据五、代码测试六、所有代码 一、前言 环形队列采用数组模拟,用模运算来模拟环状特性。和基于阻塞队列的生产者消费者模型不同的…...
python求解二次方程
为了找到x和y之间的关系,并假设这种关系是一个二次函数,我们可以使用numpy的polyfit函数来拟合一个二次方程(即形式为y ax^2 bx c的方程)。然后,我们可以使用matplotlib来绘制散点图,并在图上添加最佳拟…...

Spring框架面试总结
Spring基础 什么是spring框架 Spring 框架是一个用于构建企业级 Java 应用程序的开源框架。【Java项目快速构建轻量级框架】我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。【根据模…...

java之网络编程篇
前言 网络编程就是计算机和计算机之间通过网络进行数据传输,下面介绍一些概念和如何实现UDP和TCP两种模式的传输。 一、常见的软件架构C/S和B/S C/S架构需要一个客户端软件程序服务器 B/S只需要打开网页服务器 C/S架构的优缺点和应用场景 优点:画面可以…...

stm32f103c8t6与TB6612FNG解耦测试
stm32f103c8t6与TB6612FNG解耦测试 本文操作方式: 忽略底层,只做上层, 所以前面全部照搬步骤,重在调试 文章目录 stm32f103c8t6与TB6612FNG解耦测试本文操作方式:创建基本工程(1)跳转此链接,创建(2)创建电机驱动文件夹(3)PWM原理(4)电机转动控制 oled调试和key调试(5)OLED转速…...
2253336 - 资源库 - OAC0 中的脱机状态
症状 资源库的状态显示为离线。 环境 SAP 内容服务器 6.50 或更高版本与 MaxDB 存储媒介结合使用对于状态为离线的资源库,测试报表 RSCMST 运行正常资源库可在应用程序中使用,没有任何问题 重现问题 启动事务 OAC0双击资源库按 "CSADMIN"…...

uni-app总结
1. <u-form-item label"报废人" ><u--input v-model"model.remark" border"bottom" placeholder"请输入"></u--input> </u-form-item> border"bottom" 报废日期 为了...

【JavaEE初阶】线程安全的集合类
📕 引言 我们之前讲过的集合类,,大部分都不是线程安全的. Vector, Stack, HashTable, 是线程安全的(都是自带了synchronized,不建议用), 其他的集合类不是线程安全的。 注意:加锁不能保证线程一定安全,不加锁也不能确定线程一定…...

关于Vue项目npm快捷键,点击run启动报错,及npm i也报错的解决办法
1.配置idea的npm 2.点击运行按钮 3.结果 分析原因及问题: npm i npm run dev 由于是刚刚从gitlab新拉的前端代码,可能没有用命令install过类似于没有编译过,所以执行一下上面的命令 结果报错如下: F:\tbyf\qjyy\hip-manager-ui&…...
React中,className属性自定义组件不生效的问题
在React中,className属性不仅适用于原生的HTML元素,也可以用于自定义组件。实际上,className属性是React中通用的属性,可以应用于任何React元素,无论是原生的HTML元素还是自定义的组件。 为什么使用className而不是cl…...
Ubuntu22.04搭建fabric开发环境、开发环境下运行链码
在智能合约开发过程中,开发人员需要一种快速、迭代地测试链码包的方法,而无需为每次修改运行链码生命周期命令。 使用 Fabric 二进制文件并启动peer处于开发模式(“DevMode”),然后将链码连接到peer。它允许您启动链代…...

[BSidesCF 2019]Kookie1
打开题目,看到 根据提示,账号:cookie。密码:monster。试一下登录,登陆成功 抓包看看信息 根据提示, 看一下返回包 账号要加username要改成admin,改一下试试 构造cookie 直接得到flag flag{c…...
LCM红外小目标检测
根据站内的matlab代码修改成python版本。 import numpy as np import matplotlib.pyplot as plt import cv2 from pylab import mpl# 设置中文显示字体 mpl.rcParams["font.sans-serif"] ["SimHei"]def LCM_computation(patch_LCM_in):row, col patch_L…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...