This a pretty basic question that I can't find a simple answer to anywhere online. In a Windows Store xaml/c# app, if I create a New Templated Control named CustomControl1.cs.

Here's the default template as defined in the Generic.xaml file:

<!-- language-all: lang-xaml -->
<Style TargetType="local:CustomControl1">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:CustomControl1">
                <Border>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

I should be able to specify where child content lives by setting the Content property on the Border element above in either of the two following ways.

Specify content as Attribute

<Border Child="{TemplateBinding Content}" />

Specify content as Element

<Border>
    <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}"
                      Content="{TemplateBinding Content}" />
</Border>

But in either event, whenever I use the new control elsewhere, I'm unable to set the content property

Using this:

<local:CustomControl1>
    <Button></Button>
</local:CustomControl1>

Gives off the two following errors:

Cannot add content to an object of type "CustomControl1"
The type 'CustomControl1' does not support direct content.

Make sure you derive your class from ContentControl and not just Control. This should resolve this for you. The default "Templated Control" item template is pretty generic to handle any case that folks might want, so if you want something more (in this case a Content control), just change to derive from ContentControl.

Hope this helps!