如何在UWP C#中向ControlTemplate添加网格

时间:2017-11-23 14:07:03

标签: c# uwp uwp-xaml

我想在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);

1 个答案:

答案 0 :(得分:1)

我不确定为什么需要更改后面的grammar D; predicate : Lrr | predicate varChars ; varChars : Lrr | Urr; Lrr : LOWERCASE; Urr: UPPERCASE; fragment LOWERCASE : [a-z] ; fragment UPPERCASE : [A-Z] ; 代码,但不建议这样做。根据{{​​3}}类的评论:

  

控件模板提供组成控件实例的视觉效果和部件,因为它显示在应用程序的UI中。在运行时,模板已经应用,因此从模板创建的所有部件现在都是控件的真正部分。

模板已在运行时应用,在定义ControlTemplate时实际上只有两个属性:ControlTemplate和隐式XAML。如果您确实想要设置代码,可以尝试使用ControlTemplate来解析XAML,例如:

TargetType

同样,不建议这样做。想想你为什么需要这个功能。您可以在XAML中直接更改它,也可以创建自定义控件以使用const string xaml = "<ControlTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"><Rectangle Stroke=\"Red\" StrokeThickness=\"3\" /></ControlTemplate>"; ControlTemplate сt=(ControlTemplate)XamlReader.Load(xaml); 方法设置自己的ControlTemplate