WPF中为Grid增加边框
2019独角兽企业重金招聘Python工程师标准>>>
/// <summary>
/// 为Grid添加外边框
/// </summary>
public class GridHelper
{
//请注意:可以通过propa这个快捷方式生成下面三段代码
public static bool GetShowBorder(DependencyObject obj)
{
return (bool)obj.GetValue(ShowBorderProperty);
}
public static void SetShowBorder(DependencyObject obj, bool value)
{
obj.SetValue(ShowBorderProperty, value);
}
public static readonly DependencyProperty ShowBorderProperty =
DependencyProperty.RegisterAttached("ShowBorder", typeof(bool), typeof(GridHelper), new PropertyMetadata(OnShowBorderChanged));
//这是一个事件处理程序,需要手工编写,必须是静态方法
private static void OnShowBorderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var grid = d as Grid;
if ((bool)e.OldValue)
{
grid.Loaded -= (s, arg) => { };
}
if ((bool)e.NewValue)
{
grid.Loaded += (s, arg) =>
{
//这种做法自动将控件移动到Border里面来
var controls = grid.Children;
var count = controls.Count;
for (int i = 0; i < count; i++)
{
var item = controls[i] as FrameworkElement;
var border = new Border()
{
BorderBrush = new SolidColorBrush(Colors.LightGray),
BorderThickness = new Thickness(1),
Padding = new Thickness(20)
};
var row = Grid.GetRow(item);
var column = Grid.GetColumn(item);
var rowspan = Grid.GetRowSpan(item);
var columnspan = Grid.GetColumnSpan(item);
Grid.SetRow(border, row);
Grid.SetColumn(border, column);
Grid.SetRowSpan(border, rowspan);
Grid.SetColumnSpan(border, columnspan);
grid.Children.RemoveAt(i);
border.Child = item;
grid.Children.Insert(i, border);
}
};
}
}
}
需要用的时候在网页的头部加上 : xmlns:ext="clr-namespace:页面的名称"
在需要加边框的Grid中增加属性ext:GridHelper.ShowBorder="True"
转载于:https://my.oschina.net/u/2446847/blog/1536384
WPF中为Grid增加边框相关推荐
- wpf中button的无边框实现
设置button的样式为:Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}";即可 转载于:https://www ...
- 为WPF和Silverlight的Grid添加边框线(zz)
Grid是WPF和Silverlight中的一个重要的布局元素,其他的布局元素还有StackPanel, Canvas, Border等等.从字面上说,Grid是一个表格的意思,它的使用也确实很方便, ...
- 为WPF和Silverlight的Grid添加边框线
Grid是WPF和Silverlight中的一个重要的布局元素,其他的布局元素还有StackPanel, Canvas, Border等等.从字面上说,Grid是一个表格的意思,它的使用也确实很方便, ...
- 01.WPF中制作无边框窗体
[引用:]http://blog.csdn.net/johnsuna/article/details/1893319 众所周知,在WinForm中,如果要制作一个无边框窗体,可以将窗体的FormBor ...
- WPF Grid添加边框的两种方法
最近项目中使用到了Grid表格,居然要加边框,查了一下,grid原生居然是不支持实线边框的.. 最终我还是实现了效果, 看看吧: 左边是直接写的每行一个border,每列写一个border,这样在行列 ...
- C#(WPF)为Grid添加实线边框。
原文:C#(WPF)为Grid添加实线边框. 相信大家在做WPF项目的时候,都会用到Grid这个布局控件,一般情况下,如果只是为了布局,那就不需要显示它的边框,但是也有特殊需求,如果把它当做表格来使用 ...
- WPF中5种内建面板Canvas、StackPanel、WrapPanel、DockPanel、Grid分析
Canvas.StackPanel.WrapPanel.DockPanel和Grid是WPF中主要的5种内建面板,这些面板类都位于System.Windows.Controls命名空间下. 主要布局特 ...
- WPF中Grid实现网格,表格样式通用类(转)
/// <summary> /// 给Grid添加边框线 /// </summary> /// <param name="grid"></ ...
- wpf grid添加边框
/// <summary>/// 为Grid添加边框/// </summary>public class GridHelper{//边框的宽度static double myB ...
最新文章
- 两位智源青年科学家榜上有名!2020青橙奖公布
- apache 修改最大连接数
- 窗体的常用属性和常用事件
- Kaggle债务违约预测冠军经验分享
- java的多态性学习代码
- dijkstra+堆优化
- pb 如何导出csv_Firefox火狐浏览器将提供导出密码至本地的功能
- Spring 环境与profile(一)——超简用例
- webusercontrol ajax,ASP.NET页面使用AjaxPro2完成JS调用后台方法
- 微盟合作,重磅推出全免费的H5专业营销平台,快速创建第一个H5活动(捷微H5)
- 基于JAVA+SpringMVC+Mybatis+MYSQL的二手车辆在线交易系统
- String中的==与Empty
- knn算法的最佳k值_KNN(k-NearestNeighbor)算法笔记
- mysql 字典表设计_字典表设计
- 倒计时小插件,懒人专用
- 最新最全论文合集——基于机器学习/深度学习的睡眠信号分类
- linux dd销毁数据,dd命令详解(清除硬盘数据)
- 玩转SQL语句之group by 多字段分组查询与having子句,一篇解决你的疑惑!
- python3--数据可视化-爬取赌博聊天室2万5千条聊天记录分析之后发现...
- ## I.MX6ULL学习笔记一I.MX启动方式
热门文章
- eeglab中文教程系列(17)-DIPFIT对独立成分进行等价偶极子定位
- python3数据库编程_python3+PyQt5 数据库编程--增删改实例
- CCF CTO Club 官宣:活动Logo诞生啦!
- “金星生命论”乌龙事件新进展:那只是二氧化硫而已
- OpenCV新手入门,如何用它平移缩放和旋转图片
- 中国物流供应链“零的突破”!阿里路径规划算法入围运筹学“奥斯卡”
- 2020中国年度AI评选结果揭晓!领航企业、商业人物、创新产品……AI落地最佳参考就在这里...
- 英伟达RTX 30系列卖得太好,财报业绩创新高,老黄:Arm收购完成时间已确定
- RabbitMQ分布式集群架构
- Java并发编程:线程池