我想在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没有Child或Children
Grid grid1 = new Grid();
ControlTemplate cTempl = new ControlTemplate();
cTempl.child.add(grid1);
1 回答
我不确定为什么你需要更改后面的
ControlTemplate
代码,但不建议这样做 . 根据ControlTemplate类的评论:模板已经在运行时应用,并且在定义
ControlTemplate
时实际上只有两个属性:TargetType
和隐式XAML . 如果您确实想要设置代码,可以尝试使用XamlReader来解析XAML,例如:同样,不建议这样做 . 想想你为什么需要这个功能 . 您可以在XAML中直接更改它,或创建自定义控件以使用
OnApplyTemplate
方法设置您自己的ControlTemplate
.