我想创建自己的控件:
public class DataGrid : System.Windows.Controls.DataGrid
在样式定义中,我想在网格上方添加一个按钮,所以我写道:
<Style TargetType="local:DataGrid">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:DataGrid">
<Grid>
<Button Content="Addnew"></Button>
<?????>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但是我怎么能告诉xaml把网格放在位置? ?
谢谢大家!!
答案 0 :(得分:0)
您确定要在此处使用继承吗?您应该考虑创建另一个包含DataGrid的控件,而不是继承DataGrid并使用默认模板。
如果您确定需要自定义DataGrid的模板,则需要重新创建整个DataGrid模板。您可以通过在.net反射器或类似应用程序中打开DataGrid的程序集并打开嵌入式资源“generic.xaml”来找到原始DataGrid模板。该文件将包含一个ResourceDictionary,用于定义程序集中定义的Controls的所有默认样式。您可以从此处复制默认模板,并根据需要进行修改。
或者,如果您有Expression Blend,您可以通过右键单击DataGrid控件并选择“编辑此模板的副本”(或类似的东西,我不记得确切的措辞)来自动执行此操作。我的头脑。)