Mam dziwny problem.
Robię swoją wersję template dla buttona z książki. Oczywiście w książce wszystko działa tylko u mnie nie. Nie rozumiem czemu nie wyświetla się content z przycisku., próbowałem dodać tam rectangle lub zwykły tekst, nie działa. A moim zdaniem wszystko jest w porządku.
Moja wersja:

<Grid x:Name="LayoutRoot" Margin="216,141,230,191.5">
		<Grid.Resources>
			<ControlTemplate x:Key="ButtonTemplate">
				<Viewbox Stretch="Fill">
					<Grid Height="100" Width="152">
						<Rectangle x:Name="Background" Fill="{TemplateBinding Background}" RadiusX="20" RadiusY="10"/>
						<Rectangle x:Name="CentralBrightening" Opacity="0.2" RadiusX="20" RadiusY="10">
							<Rectangle.Fill>
								<RadialGradientBrush>
									<GradientStop Color="Black" Offset="1"/>
									<GradientStop Color="White"/>
								</RadialGradientBrush>
							</Rectangle.Fill>
						</Rectangle>
						<Path x:Name="GlassLayer" Opacity="0.75" Data="M3.1660008,12.000478 C3.1660008,6.4776303 8.954305,0 20,0 L124.667,0 C135.71269,0 138.99973,4.8109417 138.99973,10.333789 L139.08373,34.749806 C123.75039,60.750729 111.82964,30.479422 92.999918,31.666727 L52.333138,32.333391 C31.329494,29.979393 19.833005,60.248672 3.3330017,35.249803 z"  Margin="5">
							<Path.Fill>
								<LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1"> 
									<GradientStop Offset="0" Color="#00FFFFFF"/>
									<GradientStop Offset="1" Color="#F2FFFFFF"/>
								</LinearGradientBrush>
							</Path.Fill>
						</Path>
						<Rectangle x:Name="FlashLayer" Fill="{TemplateBinding BorderBrush}" Margin="3" RadiusX="20" RadiusY="10">
							<Rectangle.OpacityMask>
								<RadialGradientBrush Center="0.511,1" GradientOrigin="0.5, 1"
								RadiusY="0.362">
									<GradientStop Color="Black" Offset="0"/>
									<GradientStop Offset="1"/>
								</RadialGradientBrush>
							</Rectangle.OpacityMask>
						</Rectangle>
						<Rectangle x:Name="FlashWhite" Margin="3" RadiusX="20" RadiusY="10">
							<Rectangle.Fill>
								<RadialGradientBrush GradientOrigin="0.5,0.95" Center="0.5,0.95">
									<GradientStop Offset="1"/>
									<GradientStop Color="White"/>
								</RadialGradientBrush>
							</Rectangle.Fill>
						</Rectangle>
						<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Margin="{TemplateBinding Padding}"/>
					</Grid>
				</Viewbox>
				<ControlTemplate.Triggers>
						<Trigger Property="Button.IsPressed" Value="true">
							<Setter Property="RenderTransform">
								<Setter.Value>
									<ScaleTransform ScaleX="0.95" ScaleY="0.95"/>
								</Setter.Value>
							</Setter>
							<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
						</Trigger>
						
					</ControlTemplate.Triggers>
			</ControlTemplate>
		</Grid.Resources>
		<Button Template="{StaticResource ButtonTemplate}" Background="#FF195083" Foreground="Black" BorderBrush="#FF36EDE9" Width="100" Height="100">
			<Rectangle Fill="White" Height="25" Width="25"/>
		</Button>
		
	</Grid>

Wersja książkowa:

<Grid>
        <Grid.Resources>
            <ControlTemplate x:Key="ButtonTemplate" TargetType="{x:Type Button}">
                <Viewbox Stretch="Fill">
                    <Grid Height="100" Width="100">
                        <Ellipse x:Name="Background" Fill="{TemplateBinding Background}">
                            <Ellipse.Effect>
                                <DropShadowEffect x:Name="SHEffect" Opacity="0" BlurRadius="20" Color="{Binding BorderBrush.Color, RelativeSource={RelativeSource Mode=TemplatedParent}}" ShadowDepth="0"/>
                            </Ellipse.Effect>
                        </Ellipse>
                        <Ellipse x:Name="CentralBrightening" Opacity="0.2">
                            <Ellipse.Fill>
                                <RadialGradientBrush>
                                    <GradientStop Color="Black" Offset="1"/>
                                    <GradientStop Color="White"/>
                                </RadialGradientBrush>
                            </Ellipse.Fill>
                        </Ellipse>
                        <Path x:Name="GlassLayer" Data="M90,45 C90,69.852814 69.852814,40 45,40 20.147186,40 0,69.852814 0,45 0,20.147186 20.147186,0 45,0 69.852814,0 90,20.147186 90,45 z" Margin="5,5,5,40.117" Stretch="Fill">
                            <Path.Fill>
                                <RadialGradientBrush Center="0.5,0.842" GradientOrigin="0.5,0.842" RadiusY="0.828">
                                    <GradientStop Offset="0" Color="#00FFFFFF" />
                                    <GradientStop Offset="1" Color="#F2FFFFFF"/>
                                </RadialGradientBrush>
                            </Path.Fill>
                        </Path>
                        <Ellipse x:Name="FlashLayer" Fill="{TemplateBinding BorderBrush}" Margin="3">
                            <Ellipse.OpacityMask>
                                <RadialGradientBrush Center="0.511,0.97" GradientOrigin="0.511,0.97" RadiusY="0.362">
                                    <GradientStop Color="Black" Offset="0"/>
                                    <GradientStop Offset="1"/>
                                </RadialGradientBrush>
                            </Ellipse.OpacityMask>
                        </Ellipse>
                        <Ellipse x:Name="FlashWhite" Margin="3">
                            <Ellipse.Fill>
                                <RadialGradientBrush Center="0.533,0.949" GradientOrigin="0.533,0.949" RadiusY="0.287" RadiusX="0.415">
                                    <GradientStop Offset="1"/>
                                    <GradientStop Color="White"/>
                                </RadialGradientBrush>
                            </Ellipse.Fill>
                        </Ellipse>
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Margin="{TemplateBinding Padding}" />
                    </Grid>
                </Viewbox>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Trigger.EnterActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Duration="0:0:0.25" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="SHEffect"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </Trigger.EnterActions>
                        <Trigger.ExitActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Duration="0:0:0.25" To="0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="SHEffect"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </Trigger.ExitActions>
                    </Trigger>
                    <Trigger Property="ButtonBase.IsPressed" Value="True">
                        <Setter Property="RenderTransform">
                            <Setter.Value>
                                <ScaleTransform ScaleX="0.95" ScaleY="0.95"/>
                            </Setter.Value>
                        </Setter>
                        <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Grid.Resources>
        <Button Foreground="Black" Template="{StaticResource ButtonTemplate}"  BorderBrush="#FF36EDE9" Background="#FF195083" Width="100" Height="100" >
            <Rectangle Fill="White" Height="25" Width="25"/>
        </Button>
    </Grid>

Edit: Ok, już nieważne trzeba TargetType podać :P