【WPF】C#代码动态改变控件的样式
2023-09-11 14:22:26 时间
需求:C#代码生成的一组按钮Button需要设置样式。
如果是在XAML中引入样式:
<!-- 引入资源 -->
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- 引入颜色字符串 -->
<ResourceDictionary Source="/Presentation/Resources/ColorResources.xaml" />
<!-- 引入样式 -->
<ResourceDictionary Source="/Presentation/Style/MyRadioButton.xaml" />
<ResourceDictionary Source="/Presentation/Style/MyTextBlock.xaml" />
<ResourceDictionary Source="/Presentation/Style/MyComboBox.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
但是现在由于按钮是用代码动态生成的,需要在生成时指定样式。样式文件已经单独抽取。
// 引入按钮的样式
var myResourceDictionary = new ResourceDictionary
{
Source = new Uri("/ProjectName;component/Presentation/Style/MyButton.xaml", UriKind.RelativeOrAbsolute) // 指定样式文件的路径
};
var myButtonStyle = myResourceDictionary["myButton1"] as Style; // 通过key找到指定的样式
// 动态添加按钮
Button btn = new Button()
{
Content = "这是按钮",
Style = myButtonStyle, // 设置样式
};
重要的参考:
http://stackoverflow.com/questions/18813177/how-do-i-access-a-resourcestyle-through-code
相关文章
- vs2015 C# WinForm 使用皮肤 美化窗体
- 使用C#的HttpWebRequest模拟登陆网站
- .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了 [WPF]为旧版本的应用添加触控支持 js css等静态文件版本控制,一处配置多处更新.net版【原创】 C#图片处理,缩略图制作 SqlDataReader 结果集 转成 DataTable DataTable转成List集合 如何使用linq读取DataTable集合?
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作
- 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂
- [C#基础]c#中的BeginInvoke和EndEndInvoke
- c# 确定dynamic类型的数据对象是否存在某个属性
- c#中sqlite将datatable复制到另一个数据库中(目的数据库需要先创建表结构)
- C# 图像处理
- C#设计模式 之 单例模式
- C#-WebRequest 超时不起作用
- C#多线程问题(从不同步的代码块中调用了对象同步方法。)
- C#-【可空类型Nullable】-OK
- c# Linq及Lamda表达式应用经验之 GroupBy 分组
- 【C#/WPF】如何查看System.Windows.Interactivity.dll中EventTrigger的EventNames属性有哪些
- 【C#/WPF】.Net生成二维码QRCode的工具
- 【C#/WPF】用System.Timers.Timer计时器做浮窗广告
- 【WPF/C#】使用BackgroundWorker实现多线程/异步操作
- 【WPF/C#】联网异步获取二进制文件(如图片)的流程
- 【WPF】C#代码动态添加控件的Margin属性