Hello,
The default Template for the control is a good example:
<ControlTemplate TargetType="controls:EditableContentControl">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter x:Name="presenter" Margin="2,0" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" ContentStringFormat="{TemplateBinding ContentStringFormat}">
<ContentPresenter.Resources>
<Style TargetType="TextBlock">
<Setter Property="TextTrimming" Value="CharacterEllipsis" />
<Setter Property="TextWrapping" Value="NoWrap" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
<TextBox x:Name="textBox" MinWidth="30" MinHeight="0" Padding="0" BorderThickness="0" FontSize="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=FontSize}"
Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=EditableContent, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="NoWrap" HorizontalAlignment="Left" VerticalAlignment="Center" Visibility="Collapsed" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEditing" Value="True">
<Setter TargetName="presenter" Property="Visibility" Value="Collapsed" />
<Setter TargetName="textBox" Property="Visibility" Value="Visible" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
You can see there how the TextBox is swapped in when IsEditing=true. In a cloned ControlTemplate, you could replace the TextBox with some other control if you wish.