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增加边框相关推荐

  1. wpf中button的无边框实现

    设置button的样式为:Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}";即可 转载于:https://www ...

  2. 为WPF和Silverlight的Grid添加边框线(zz)

    Grid是WPF和Silverlight中的一个重要的布局元素,其他的布局元素还有StackPanel, Canvas, Border等等.从字面上说,Grid是一个表格的意思,它的使用也确实很方便, ...

  3. 为WPF和Silverlight的Grid添加边框线

    Grid是WPF和Silverlight中的一个重要的布局元素,其他的布局元素还有StackPanel, Canvas, Border等等.从字面上说,Grid是一个表格的意思,它的使用也确实很方便, ...

  4. 01.WPF中制作无边框窗体

    [引用:]http://blog.csdn.net/johnsuna/article/details/1893319 众所周知,在WinForm中,如果要制作一个无边框窗体,可以将窗体的FormBor ...

  5. WPF Grid添加边框的两种方法

    最近项目中使用到了Grid表格,居然要加边框,查了一下,grid原生居然是不支持实线边框的.. 最终我还是实现了效果, 看看吧: 左边是直接写的每行一个border,每列写一个border,这样在行列 ...

  6. C#(WPF)为Grid添加实线边框。

    原文:C#(WPF)为Grid添加实线边框. 相信大家在做WPF项目的时候,都会用到Grid这个布局控件,一般情况下,如果只是为了布局,那就不需要显示它的边框,但是也有特殊需求,如果把它当做表格来使用 ...

  7. WPF中5种内建面板Canvas、StackPanel、WrapPanel、DockPanel、Grid分析

    Canvas.StackPanel.WrapPanel.DockPanel和Grid是WPF中主要的5种内建面板,这些面板类都位于System.Windows.Controls命名空间下. 主要布局特 ...

  8. WPF中Grid实现网格,表格样式通用类(转)

    /// <summary> /// 给Grid添加边框线 /// </summary> /// <param name="grid"></ ...

  9. wpf grid添加边框

    /// <summary>/// 为Grid添加边框/// </summary>public class GridHelper{//边框的宽度static double myB ...

最新文章

  1. 两位智源青年科学家榜上有名!2020青橙奖公布
  2. apache 修改最大连接数
  3. 窗体的常用属性和常用事件
  4. Kaggle债务违约预测冠军经验分享
  5. java的多态性学习代码
  6. dijkstra+堆优化
  7. pb 如何导出csv_Firefox火狐浏览器将提供导出密码至本地的功能
  8. Spring 环境与profile(一)——超简用例
  9. webusercontrol ajax,ASP.NET页面使用AjaxPro2完成JS调用后台方法
  10. 微盟合作,重磅推出全免费的H5专业营销平台,快速创建第一个H5活动(捷微H5)
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的二手车辆在线交易系统
  12. String中的==与Empty
  13. knn算法的最佳k值_KNN(k-NearestNeighbor)算法笔记
  14. mysql 字典表设计_字典表设计
  15. 倒计时小插件,懒人专用
  16. 最新最全论文合集——基于机器学习/深度学习的睡眠信号分类
  17. linux dd销毁数据,dd命令详解(清除硬盘数据)
  18. 玩转SQL语句之group by 多字段分组查询与having子句,一篇解决你的疑惑!
  19. python3--数据可视化-爬取赌博聊天室2万5千条聊天记录分析之后发现...
  20. ## I.MX6ULL学习笔记一I.MX启动方式

热门文章

  1. eeglab中文教程系列(17)-DIPFIT对独立成分进行等价偶极子定位
  2. python3数据库编程_python3+PyQt5 数据库编程--增删改实例
  3. CCF CTO Club 官宣:活动Logo诞生啦!
  4. “金星生命论”乌龙事件新进展:那只是二氧化硫而已
  5. OpenCV新手入门,如何用它平移缩放和旋转图片
  6. 中国物流供应链“零的突破”!阿里路径规划算法入围运筹学“奥斯卡”
  7. 2020中国年度AI评选结果揭晓!领航企业、商业人物、创新产品……AI落地最佳参考就在这里...
  8. 英伟达RTX 30系列卖得太好,财报业绩创新高,老黄:Arm收购完成时间已确定
  9. RabbitMQ分布式集群架构
  10. Java并发编程:线程池