Can I use VisualStateManager with my subclass of ChildWindow? Calls in VisualStateManager do nothing, and I realized that the only way to achieve this is through manual calls to storyboards. It is so much sloppier and error prone. Has anyone found a way to achieve this?
Updated with example code . To use it, just create a new Silverlight project and call ExampleWindow.ShowWindow () by clicking the button on the main page. You will see the button, although the constructor sets the state that the button should hide.
XAML (ExampleWindow.xaml):
<controls:ChildWindow xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions" x:Class="Client.Windows.ExampleWindow" Title="Example"> <Grid x:Name="LayoutRoot"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="ExampleStateGroup"> <VisualState x:Name="ExampleBaseState"> <Storyboard> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="button" Storyboard.TargetProperty="(UIElement.Opacity)"> <EasingDoubleKeyFrame KeyTime="00:00:00" Value="0"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <VisualStateManager.CustomVisualStateManager> <ic:ExtendedVisualStateManager/> </VisualStateManager.CustomVisualStateManager> <Button x:Name="button" Content="You Shouldn't See Me" Grid.ColumnSpan="2" Width="150" Height="150" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Grid> </controls:ChildWindow>
Behind Code (ExampleWindow.xaml.cs):
using System.Windows; using System.Windows.Controls; namespace Client.Windows { public partial class ExampleWindow : ChildWindow { public ExampleWindow() { InitializeComponent(); VisualStateManager.GoToState( this, "ExampleBaseState", true ); } public static void ShowWindow() { var w = new ExampleWindow(); w.Show(); } } }
animation silverlight xaml visualstatemanager
Dov
source share