【WPF】C#代码动态添加控件的Margin属性
需求:一组按钮的数据是从服务器中Json数据发过来的,需要根据这个Json数据动态地添加这组按钮。
工具:使用http://www.newtonsoft.com/json来解析Json。
过程:C#代码中new了一个Button,想给它添加Margin属性时会看到如下报错:
报错提示我们,想给Margin属性赋值需要的是System.Windows.Thickness类型。
查看MSDN文档关于这个System.Windows.Thickness类型的描述:
https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k(System.Windows.Thickness);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);k(DevLang-csharp)&rd=true
直接拖到下面看例子:
这里我们只关注代码。所以参考案例,修改代码如下:
for (int i = 0; i < list.Count; i++)
{
RadioButton btn = new RadioButton(){
Content = list[i].Category, // 对应的实体类的属性
};
// 添加按钮的点击回调
btn.Click += new RoutedEventHandler(MyBtn_OnClick);
// 这样添加Margin属性
Thickness myThickness = new Thickness();
myThickness.Left = 5;
myThickness.Top = 5;
myThickness.Right = 5;
myThickness.Bottom = 5;
btn.Margin = myThickness;
// 默认勾选上按钮组的第一个
if (i == 0)
{
btn.IsChecked = true;
}
// 设置样式
btn.SetValue(RadioButton.StyleProperty, Application.Current.Resources["myRadioButton"]);
// 把这个控件加入父容器中
wrapPanel.Children.Add(btn);
}
关于C#代码中动态使用样式,参考:
【WPF】C#代码动态添加控件的Margin属性的更多相关文章
- WPF:理解ContentControl——动态添加控件和查找控件
WPF:理解ContentControl--动态添加控件和查找控件 我认为WPF的核心改变之一就是控件模型发生了重要的变化,大的方面说,现在窗口中的控件(大部分)都没有独立的Hwnd了.而且控件可以通 ...
- WPF 动态添加控件以及样式字典的引用(Style introduction)
原文:WPF 动态添加控件以及样式字典的引用(Style introduction) 我们想要达到的结果是,绑定多个Checkbox然后我们还可以获取它是否被选中,其实很简单,我们只要找到那几个关键的 ...
- winform导入导出excel,后台动态添加控件
思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
博客分类: jquery-easyui jQueryAjax框架HTML 现象: AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout ...
- asp.net动态添加控件学习
看了老师的教程后,自己一点感悟记录下来: 1.在页面提交后,动态生成的控件会丢失, 但如果生成控件的代码在pageload中,就可以,原理是每次生成页面都执行生成. 2.动态按件或页面原来控件, 在页 ...
- 怎样在不对控件类型进行硬编码的情况下在 C#vs 中动态添加控件
文章ID: 815780 最近更新: 2004-1-12 这篇文章中的信息适用于: Microsoft Visual C# .NET 2003 标准版 Microsoft Visual C# .NET ...
- JQuery动态添加控件并取值
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Android 在布局容器中动态添加控件
这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉 ...
- VC中动态添加控件
VC中动态添加控件 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个 ...
随机推荐
- vs2010 javascript代码拓展插件支持代码折叠
参考地址
- XML编辑器之XMLSpy2005
http://baike.baidu.com/link?url=79rnCuCnvoYJZHmQUBdc9INRvBTsWO_RYjWXgWI2sP1thb2WV5_6j_ygzInE7bdE7zaC ...
- web development blog(转)
Top 10 jQuery Mobile Code Snippets that you need to know jQuery Mobile is a framework for mobile web ...
- 2014年15款新评定的最佳PHP框架
通常,框架都会被认为是帮助开发者快速设计和开发动态网站的软件应用.每个月都有极大数量的新发布的 PHP 框架,使网站开发更简单更高效. 如果你是位 PHP 开发者,正在寻找当前最好的一些 PHP 框架 ...
- jQuery动态网格瀑布流插件Masonry
Masonry是一款非常强大的jQuery动态网格布局插件,可以帮助开发人员快速开发瀑布流界面效果.和CSS中float的效果不太一样的地方在于,float先水平排列,然后再垂直排列,使用Masonr ...
- python学习笔记——多进程二 进程的退出
1 进程的退出函数的基础语法 1.1 进程的退出函数 进程的退出含有有os._exit([status])和sys.exit([status])两种,从数据包来看,该退出模块仅在linux或者unix ...
- android studio 中出现"...ProjectScript\buildscript\cache.properties.lock"
Owner PID: unknownOur PID: 8496Owner Operation: unknownOur operation: Initialize cacheLock file: C ...
- 导入sklearn 报错,找不到相关模块
1.问题原因::安装包的来源问题,也可以理解为包版本兼容问题,有的包使用官方出版,有的包使用whl文件安装解决方案:将所有包都统一来源,要么全部使用官方出版的包,要么全部使用whl里面的包,问题就解决 ...
- python标准库介绍——28 md5 模块详解
==md5 模块== ``md5`` (Message-Digest Algorithm 5)模块用于计算信息密文(信息摘要). ``md5`` 算法计算一个强壮的128位密文. 这意味着如果两个字符 ...
- Is "UNION ALL" Always Better Than "UNION"? Watch Out!
无论是教科书还是平常的实践都告诉我们 - “尽量避免用UNION,尽可能用UNION ALL替代”. 原因很简单,UNION会对结果集进行排序去重操作,这是一个很消耗资源的操作. 但是,今天碰到了一个 ...