当前位置: 首页 > news >正文

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="&#xf068;"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="&#xf067;"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

http://www.lryc.cn/news/419353.html

相关文章:

  • Postgresql数据库密码忘记的解决
  • Flink SQL 基础操作
  • 海思AE模块Lines_per_500ms参数的意义
  • 【代码随想录】区间和——前缀和方法
  • Bug 解决 | 前端项目无法正确安装依赖?
  • 【mysql 第四篇章】bin log 的作用是啥呢?
  • Linux 操作系统:基于环形队列的生产者消费者模型
  • python求解二次方程
  • Spring框架面试总结
  • java之网络编程篇
  • stm32f103c8t6与TB6612FNG解耦测试
  • 2253336 - 资源库 - OAC0 中的脱机状态
  • uni-app总结
  • 【JavaEE初阶】线程安全的集合类
  • 关于Vue项目npm快捷键,点击run启动报错,及npm i也报错的解决办法
  • React中,className属性自定义组件不生效的问题
  • Ubuntu22.04搭建fabric开发环境、开发环境下运行链码
  • [BSidesCF 2019]Kookie1
  • LCM红外小目标检测
  • 振德医疗选择泛微千里聆RPA,助力电商、人事业务流程自动化
  • VBA高级应用30例应用3在Excel中的ListObject对象:创建表
  • IP 地址在 SQL 注入攻击中的作用及防范策略
  • Unity VR黑屏
  • Vue.js 中使用 Watcher 的强大场景和案例
  • 《实现 DevOps 平台(2) · GitLab CI/CD 交互》
  • 【机器学习sklearn实战】岭回归、Lasso回归和弹性网络
  • Python 爬虫项目实战六:抓取猫眼电影排行榜的数据
  • YOLO系列:从yolov1至yolov8的进阶之路 持续更新中
  • 欧拉系统离线安装界面ukui
  • Milvus向量数据库的简介以及用途