Thank you for being a valued part of the CNET community. As of December 1, 2020, the forums are in read-only format. In early 2021, CNET Forums will no longer be available. We are grateful for the participation and advice you have provided to one another over the years.

Thanks,

CNET Support

Question

How to set a default size of a control that can be resized?

Jan 6, 2012 10:17AM PST

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:

http://www.charlespetzold.com/blog/2009/05/Realizing-a-Fisheye-Effect-in-Silverlight.html
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:
[code]<StackPanel x:Name="LayoutRoot" Width="1017" Orientation="Horizontal" Height="253">
<src:FisheyeButton Style="{StaticResource btnStyle}" ButtonContent="Button No. 1" />
</StackPanel> [/code]

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:

[code]<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 >[/code]
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:
[code]
<UserControl x:Class="FisheyeButtons6.FisheyeButton"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"
xmlns:src="clr-namespace:FisheyeButtons6"
mc:Ignorable="d"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

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="0ShockedShocked.25" />
<DoubleAnimation Storyboard.TargetName="presenter"
Storyboard.TargetProperty="ScaleY"
To="1" Duration="0ShockedShocked.25" />
</Storyboard>
</vsm:VisualState>
<vsm:VisualState x:Name="MouseOver">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="presenter"
Storyboard.TargetProperty="ScaleX"
To="3" Duration="0Shocked:1" />
<DoubleAnimation Storyboard.TargetName="presenter"
Storyboard.TargetProperty="ScaleY"
To="3" Duration="0Shocked:1" />
</Storyboard>
</vsm:VisualState>
</vsm:VisualStateGroup>
</vsm:VisualStateManager.VisualStateGroups>

<Button>
<src:ScalableContentPresenter x:Name="presenter" />
</Button>
</Grid>
</UserControl>
[/code]

Discussion is locked