我想知道是否可以在运行时将 Border 元素添加到 ControlTemplate 并使所有其他现有元素成为该边框的子元素。我知道如何创建一个新的 ControlTemplate 并向它的可视化树添加边框:
ControlTemplate dtemplate = column.DisplayTemplate;
ControlTemplate newTemplate = new ControlTemplate();
FrameworkElementFactory borderFactory = new FrameworkElementFactory(typeof(Border));
borderFactory.SetValue(CellContentPresenter.BorderThicknessProperty, new Thickness(2));
borderFactory.SetValue(CellContentPresenter.BorderBrushProperty, System.Windows.Media.Brushes.Black);
newTemplate.VisualTree = borderFactory;
column.DisplayTemplate = newTemplate;
但是,我在这里特别想做的是将边框添加到现有模板的现有可视化树中,并使现有控件(如果有)成为边框的子项。例如,如果现有模板显示一个 TextBlock,我想添加一个边框并使 TextBlock 成为边框的子级。关于如何做到这一点的任何想法?