首页 新闻 会员 周边

WPF绘制多个相连矩形和后台控制问题

0
悬赏园豆:180 [已关闭问题] 关闭于 2015-12-14 20:50

如上图所示,黑色的网格线区域是希望绘制并控制的区域:希望绘制4个4*10的网格构成的区域,并且希望控制每一个小的矩形区域。现在是在xaml中绘制直线做到,希望分别绘制每一个小矩形,并能通过数组形式进行绘制,并在C#代码中进行控制,比如改变颜色。能否做到OOP呢,比如后台编写一个class表示一个4*10的网格区域,并且区域中每个小的矩形都能访问到?

 

请用过WPF的各位提点建议~

ChrisZZ的主页 ChrisZZ | 初学一级 | 园豆:27
提问于:2015-12-08 20:23
< >
分享
所有回答(2)
0

可以自定义一个UIElement

jello chen | 园豆:7306 (大侠五级) | 2015-12-08 21:51
0
     public MainWindow()
        {
            InitializeComponent();

            Grid grid = new Grid();

            for (int i = 0; i < 10; i++)
            {
                ColumnDefinition columnDefinition = new ColumnDefinition();
                grid.ColumnDefinitions.Add(columnDefinition);
            }

            for (int i = 0; i < 4; i++)
            {
                RowDefinition rowDefinition = new RowDefinition();
                grid.RowDefinitions.Add(rowDefinition);
            }

            for (int i = 0; i < grid.ColumnDefinitions.Count; i++)
            {
                for (int j = 0; j < grid.RowDefinitions.Count; j++)
                {
                    Rectangle rectangle = new Rectangle();
                    rectangle.Tag = i + ":" + j;
                    rectangle.Stroke = new SolidColorBrush(Colors.Black);
                    rectangle.StrokeThickness = 1;
                    rectangle.HorizontalAlignment = HorizontalAlignment.Stretch;
                    rectangle.VerticalAlignment = VerticalAlignment.Stretch;
                    Grid.SetColumn(rectangle, i);
                    Grid.SetRow(rectangle, j);

                    grid.Children.Add(rectangle);
                }
            }

            //把第二列的第三行的矩形的背景设为红色
            foreach (Rectangle elemnet in grid.Children)
            {
                if (elemnet.Tag.ToString() == "1:2")
                {
                    elemnet.Fill = new SolidColorBrush(Colors.Red);
                }
            }
        }
HeartWall | 园豆:206 (菜鸟二级) | 2015-12-08 23:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册