WPF Grid容器添加删除列

复制代码
  <Grid >
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <Grid Grid.Row="0"  Name="grid">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Name="stationGridBcolumn0"/>
                <ColumnDefinition Name="stationGridBcolumn1" />
                <ColumnDefinition Name="stationGridBcolumn2" />
                <ColumnDefinition Name="stationGridBcolumn3" />
                <ColumnDefinition Name="stationGridBcolumn4" />
                <ColumnDefinition Name="stationGridBcolumn5" />
            </Grid.ColumnDefinitions>
            <Grid Grid.Column="0" Name="g0">
            <Button Name="b0" Content="0"/>
         </Grid>
        <Grid Grid.Column="1" Name="g1">
            <Button Name="b1" Content="1"/>
        </Grid>
        <Grid Grid.Column="2" Name="g2">
            <Button Name="b2" Content="2"/>
        </Grid>
        <Grid Grid.Column="3" Name="g3">
            <Button Name="b3" Content="3"/>
        </Grid>
        <Grid Grid.Column="4" Name="g4">
            <Button Name="b4" Content="4"/>
        </Grid>
        <Grid Grid.Column="5" Name="g5">
            <Button Name="b5" Content="5"/>
        </Grid>
        </Grid>
        <Grid Grid.Row="1" >
            <StackPanel>
            <Button Content="Remove" Click="Button_Click_1"></Button>
            <Button Content="Add" Click="Button_Click_2"></Button>
             <Button Content="Insert" Click="Button_Click_3"></Button>
            </StackPanel>
        </Grid>
    </Grid>
复制代码
 /// <summary>
        /// 这只是个例子,上一步操作一定是删除操作,Add操作会把删除的列加进来
        /// </summary>
        /// <param name="info"></param>
        public void Add(Info info)
        {
            ColumnDefinition columnDefinition = info.ColumnDefinition;
            UIElement uiElement = info.UIElement;
            Grid.SetColumn(uiElement, grid.Children.Count);
            grid.ColumnDefinitions.Add(columnDefinition);
            grid.Children.Add( uiElement);
        }

        /// <summary>
        /// 这只是个例子,上一步操作一定是删除操作,Insert操作会把删除的列加进来
        /// </summary>
        /// <param name="info"></param>
        /// <param name="colIndex"></param>
        public void Insert(Info info, int colIndex)
        {
            ColumnDefinition columnDefinition = info.ColumnDefinition;
            UIElement uiElement = info.UIElement;
            Grid.SetColumn(uiElement, colIndex);
            grid.ColumnDefinitions.Insert(colIndex, columnDefinition);
            grid.Children.Insert(colIndex, uiElement);
            int index = 0;
            foreach (UIElement child in grid.Children)
            {
                Grid.SetColumn(child, index);
                index++;
            }
        }

        private Info Remove(int colIndex)
        {
            Info info = new Info(grid.ColumnDefinitions[colIndex], grid.Children[colIndex]); 
            grid.ColumnDefinitions.RemoveAt(colIndex);
            grid.Children.RemoveAt(colIndex);
            foreach (UIElement child in grid.Children)
            {
                int curCol = Grid.GetColumn(child);
                if (curCol > colIndex)
                {
                    Grid.SetColumn(child, curCol - 1);
                }
            }
            return info;
        }
        Info info;
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            info = Remove(4);
        }

        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            Add(info);
        }

        private void Button_Click_3(object sender, RoutedEventArgs e)
        {
            Insert(info,4);
        }
相关推荐
2601_962174172 天前
Redis 简介
数据库·redis·wpf
SamChan903 天前
Python+PyMuPDF提取PDF表格并翻译:表格结构检测与双语重建实战
windows·python·ai·pdf·wpf
SamChan903 天前
Python+OpenCV检测PDF翻译后排版偏移:像素级格式一致性验证
python·opencv·ai·pdf·wpf
FuckPatience3 天前
WPF 拿到控件的最初样式,修改获得焦点样式
wpf
主宰者3 天前
【WPF】MainWindow前添加加载窗口,发现加载过程中有白色无内容窗口闪烁一下的解决方案
wpf
Vae_Mars4 天前
WPF中的ControlTemplate(控件模板)
wpf
SamChan904 天前
Python+ReportLab自动生成PDF翻译质量审计报告:从数据到可视化的完整方案
开发语言·python·ai·pdf·wpf
circuitsosk4 天前
多智能体协同在能源数据分析中的实践:分配-执行-校验闭环架构设计
python·数据分析·wpf·能源·并行计算·多智能体系统·agent协作
weixin199701080165 天前
《大促护航:电商API限流与降级,双11峰值500万调用的架构复盘》(附Python源码)
python·架构·wpf
hh9506 天前
gent Plan x DeepSeek Harness:多 Agent 协作场景下的中央编排实践
人工智能·wpf·adg·火山引擎·agent plan·adg成都社区