【发布时间】:2017-11-24 16:53:23
【问题描述】:
我想在 UWP 应用程序中使用 C# 将网格添加到 ControlTemplate
例如,我有 XAML 代码,例如:
<ControlTemplate TargetType="HyperlinkButton">
<Grid Name="RootGrid">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup Name="CommonStates">
<VisualState Name="Normal"/>
<VisualState Name="PointerOver">
<Storyboard>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<ContentPresenter Name="ContentPresenter" AutomationProperties.AccessibilityView="Raw" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" Content="{TemplateBinding Content}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
我想从 C# 中做到这一点,ControlTemplate 没有孩子或孩子
Grid grid1 = new Grid();
ControlTemplate cTempl = new ControlTemplate();
cTempl.child.add(grid1);
【问题讨论】:
-
模板是一个模板,您不会在运行时创建控件的实例并将其添加到模板中。如果要以编程方式创建模板,则应使用 Sunteen Wu 建议的 XamlReader.Load 方法。但是在 XAML 中定义一个模板,然后尝试在运行时以编程方式对其进行修改是没有意义的。