Tech Off Post

Single Post Permalink

View Thread: How do you set a default size of a control that you can resize?
  • User profile image

    How do you set a default size of a control that you can resize?

    I have been looking at a code sample from Charles Petzold.  

    It is from here: it uses mouse over methods to increase the size of button classes.  

    I have it working but I want to make some modifications.  I want the starting size of the button to be larger.  I do not know how much of the code I need to post here to make the issue clear enough.  The XAML for the page describes a "FisheyeButton" that is described in a seperate xaml file.  Something like this:  

    <StackPanel x:Name="LayoutRoot" Width="1017" Orientation="Horizontal" Height="253">
           <src:FisheyeButton Style="{StaticResource btnStyle}" ButtonContent="Button No. 1" />   </StackPanel>  

    The functionality of the project is such that if I give the Fisheyebutton a width and height a set size at this loction, the effect where the size of the control the effect of becoming larger does not happen.  In other words, if I write in the <src:FisheyeButton... tag above Width="100", then the button does not behave at run time as it should.

    In the same page.xaml file, the btnStyle is defined like this:

    <UserControl.Resources >
       <Style x:Key="btnStyle" TargetType="src:FisheyeButton">
          <Setter Property="VerticalAlignment" Value ="Center" />
          <Setter Property="HorizontalAlignment" Value ="Center" />
          <Setter Property="FontSize" Value ="12" />
       </Style >
    </UserControl.Resources >

    I wonder if perhaps at this point, I can add a "Setter" property to define a default starting widh and height for the class.

    The animation, what makes the custom button class grow larger and also return to a normal size, is done in a seperate XAML for the Fisheyebutton class:

    <UserControl x:Class="FisheyeButtons6.FisheyeButton"              xmlns=""               xmlns:x=""              xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"              xmlns:src="clr-namespace:FisheyeButtons6"               mc:Ignorable="d"               xmlns:d=""               xmlns:mc=""                 d:DesignHeight="64" d:DesignWidth="146">     <Grid x:Name="LayoutRoot" Background="White" >         <vsm:VisualStateManager.VisualStateGroups>             <vsm:VisualStateGroup x:Name="CommonStates">                 <vsm:VisualState x:Name="Normal">                     <Storyboard>                         <DoubleAnimation Storyboard.TargetName="presenter"                                          Storyboard.TargetProperty="ScaleX"                                          To="1" Duration="0:0:0.25" />                         <DoubleAnimation Storyboard.TargetName="presenter"                                          Storyboard.TargetProperty="ScaleY"                                          To="1" Duration="0:0:0.25" />                     </Storyboard>                 </vsm:VisualState>                 <vsm:VisualState x:Name="MouseOver">                     <Storyboard>                         <DoubleAnimation Storyboard.TargetName="presenter"                                          Storyboard.TargetProperty="ScaleX"                                          To="3" Duration="0:0:1" />                         <DoubleAnimation Storyboard.TargetName="presenter"                                          Storyboard.TargetProperty="ScaleY"                                          To="3" Duration="0:0:1" />                     </Storyboard>                 </vsm:VisualState>             </vsm:VisualStateGroup>         </vsm:VisualStateManager.VisualStateGroups>           <Button>             <src:ScalableContentPresenter x:Name="presenter" />         </Button>     </Grid> </UserControl>