【发布时间】:2015-05-08 11:24:11
【问题描述】:
我正在尝试自定义绘制一个 GridSplitter,并且我有以下 XAML 代码:
<GridSplitter Grid.Column="1" Width="50" HorizontalAlignment="Stretch">
<GridSplitter.Template>
<ControlTemplate TargetType="{x:Type GridSplitter}">
<custom:DiffSplitterCanvas />
</ControlTemplate>
</GridSplitter.Template>
</GridSplitter>
DiffSplitterCanvas 继承自 Canvas。
我需要以编程方式编写它。我还需要它来使用DiffSplitterCanvas 的给定已创建实例。简化代码,应该是这样的:
GridSplitter mySplitter = new GridSplitter();
ControlTemplate myTemplate = new ControlTemplate(typeof(GridSplitter));
DiffSplitterCanvas myCanvas = new DiffSplitterCanvas();
AddElementToTemplate(myCanvas, myTemplate);
mySplitter.Template = myTemplate;
void AddElementToTemplate(FrameworkElement element, ControlTemplate template)
{
// how could achieve this?
}
编辑:我问这个问题的原因是因为我需要在用户与 UI 交互时更改 DiffSplitterCanvas 实例中的一些属性。也许这不是使用 WPF 实现它的方式,但我真的迷路了。
【问题讨论】:
标签: c# .net wpf controltemplate