I ended up doing
<button grid.row="0" grid.column="5" width="20" height="20" click="minimize_Click" horizontalalignment="Right" mode="hold" /> <Grid>
<TextBlock Name="minSize" Text="-" FontSize="12" FontWeight="Bold" Visibility="Visible"/>
<TextBlock Name="maxSize" Text="+" FontSize="12" FontWeight="Bold" Visibility="Hidden" />
</Grid>
</Button>
then in the code behind
double height = 0;
private void minimize_Click(object sender, RoutedEventArgs e)
{
if (minSize.Visibility == System.Windows.Visibility.Visible)
{
height = this.Height;
this.Height = 50;
minSize.Visibility = System.Windows.Visibility.Collapsed;
maxSize.Visibility = System.Windows.Visibility.Visible;
}
else
{
minSize.Visibility = System.Windows.Visibility.Visible;
maxSize.Visibility = System.Windows.Visibility.Collapsed;
this.Height = height;
}
}