我正在使用 xaml 和 ControlTemplate 如下:
<ControlTemplate TargetType="{x:Type local:MyControl}" x:Key="MyControlTemplate">
<Grid Background="Transparent" Name="DisplayGrid" >
<local:MyDisplay x:Name="DisplayInstance" />
<ContentPresenter />
</Grid>
</ControlTemplate>
代码:
public class MyControl : UserControl
{
....
....
....
public MyControl()
{
Template = (ControlTemplate)Resources["MyControlTemplate"];
MyDisplay display = Template.FindName("DisplayInstance", this);
// It return null
}
}
我想在模板中获取并设置“DisplayInstance”。我尝试了官方方法(使用 Template.FindName(string, FrameworkElement)),但它总是返回 null。
那么,我应该如何获取和修改 ControlTemplate/Xaml 中的“DisplayInstance”和任何其他控件?这样 ControlTemplate 的内容会在运行时发生变化。
谢谢你。