我想知道是否可以在运行时向ControlTemplate添加Border元素,并使所有其他现有元素成为该边框的子元素。我知道如何创建一个新的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成为边框的子项。 关于如何做到这一点的任何想法?