有一个样式模式。
在您要覆盖的 control.cs 文件中OnApplyTemplate
protected override void OnApplyTemplate(){
Button yourButtonControl = GetTemplateChild("TheNameOfYourButton") as Button;
base.OnApplyTemplate();
}
如果您想遵循 Microsoft 模式,那么首先您需要将控件命名为“ PART_SomethingButton
”。这只是意味着它是一个模板部分。
然后在您的Control.cs
班级中,attribute
在控件上添加一个。
- 这告诉任何覆盖您的默认样式的人,如果他们希望您的代码正常工作,他们需要
Button
在他们的模板上有一个名为 PART_SomethingButton
.
[TemplatePart(Name = "PART_SomethingButton", Type = typeof(Button))]
public class MyControl : Control
- 在您的类中,添加一个私有 Button 控件。
.
[TemplatePart(Name = "PART_SomethingButton", Type = typeof(Button))]
public class MyControl : Control{
private Button _partSomethingButton;
}
- 然后最后在您的 OnApplyTemplate 中设置您的私人按钮。
- 这进入模板并将按钮缓存在我们的 cs 文件中,以便我们可以对其进行操作或捕获事件。
.
[TemplatePart(Name = "PART_SomethingButton", Type = typeof(Button))]
public class MyControl : Control{
private Button _partSomethingButton;
protected override void OnApplyTemplate(){
_partSomethingButton = GetTemplateChild("PART_SomethingButton") as Button;
base.OnApplyTemplate();
}
}