Windows Vista Forums
Vista Forums Home Join Vista Forums Donate Vista Tutorials Tags

Welcome to Vista Forums we are your forum to discuss Windows Vista x64 and x86 systems. Whether you need help or just want to post an idea you have on Vista, this is the forum for you.
Register at Vista forums...the world biggest Windows Vista resource Join Vista Forums Now

Go Back   Vista Forums > Microsoft Technical Newsgroups > Avalon

Problem binding animation to element in a template

Update your Vista Drivers Update Your Drivers Now!!
Closed Thread
 
Thread Tools Display Modes
Old 05-18-2007   #1 (permalink)
mikesnoise@gmail.com
Guest


 

Problem binding animation to element in a template

Here's my XAML (I've surrounded the important line with the data
binding with >>> marks):

<DataTemplate x:Key="bookmarksTemplate2">
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType={x:Type ListBoxItem}},
Path=IsSelected}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>

>>>>>>>>>>>>>>>>>>

<DoubleAnimation Storyboard.TargetName="itemContainer"
Storyboard.TargetProperty="Height" Duration="0:0:0.2" By="{Binding
ElementName=entryContainer, Path=Height}"/>
>>>>>>>>>>>>>>>>>>


</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="itemContainer"
Storyboard.TargetProperty="Height" Duration="0:0:0.2" To="32"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</DataTemplate.Triggers>
<StackPanel x:Name="itemContainer" Height="32">
<StackPanel Orientation="Horizontal">
<Image Source="image.png"/>
<StackPanel>
<TextBlock Text="{Binding Path=Name}"/>
<TextBlock Text="{Binding Path=Uri}"/>
</StackPanel>
</StackPanel>
<Grid Margin="0,4,0,0" Name="entryContainer">
<Grid.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="0,2,4,2"/>
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="0,2,4,2"/>
</Style>
</Grid.Resources>

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>

<TextBlock Grid.Row="0" Grid.Column="0">Username:</
TextBlock>
<TextBox Grid.Row="0" Grid.Column="1"/>
<TextBlock Grid.Row="1" Grid.Column="0">Password:</
TextBlock>
<TextBox Grid.Row="1" Grid.Column="1"/>
</Grid>
</StackPanel>
</DataTemplate>

When I run my program I get the following exception:

System.InvalidOperationException was unhandled
Message="Cannot freeze this Storyboard timeline tree for use across
threads."
Source="PresentationFramework"
StackTrace:
at System.Windows.Media.Animation.BeginStoryboard.Seal()
at System.Windows.TriggerAction.Seal(TriggerBase
containingTrigger)
at System.Windows.TriggerActionCollection.Seal(TriggerBase
containingTrigger)
at System.Windows.TriggerBase.Seal()
at System.Windows.DataTrigger.Seal()
at System.Windows.TriggerCollection.Seal()
at System.Windows.StyleHelper.SealTemplate(FrameworkTemplate
frameworkTemplate, Boolean& isSealed, FrameworkElementFactory
templateRoot, TriggerCollection triggers, ResourceDictionary
resources, HybridDictionary childIndexFromChildID, FrugalStructList`1&
childRecordFromChildIndex, FrugalStructList`1&
triggerSourceRecordFromChildIndex, FrugalStructList`1&
containerDependents, FrugalStructList`1& resourceDependents,
ItemStructList`1& eventDependents, HybridDictionary& triggerActions,
HybridDictionary& dataTriggerRecordFromBinding, Boolean&
hasInstanceValues, EventHandlersStore& eventHandlersStore)
at System.Windows.FrameworkTemplate.Seal()
at
System.Windows.Controls.ContentPresenter.OnTemplateChanged(DependencyObject
d, DependencyPropertyChangedEventArgs e)
at
System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs
e)
at
System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs
e)
at
System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs
args)
at
System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex
entryIndex, DependencyProperty dp, PropertyMetadata metadata,
EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean
coerceWithDeferredReference, OperationType operationType)
at
System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp,
Object value, PropertyMetadata metadata, Boolean
coerceWithDeferredReference, OperationType operationType, Boolean
isInternal)
at System.Windows.DependencyObject.SetValue(DependencyProperty
dp, Object value)
at System.Windows.Controls.ContentPresenter.EnsureTemplate()
at
System.Windows.Controls.ContentPresenter.OnPreApplyTemplate()
at System.Windows.FrameworkElement.ApplyTemplate()
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Border.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Control.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at
System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement
element, Size constraint)
at System.Windows.Controls.ItemsPresenter.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement
element, Size constraint)
at
System.Windows.Controls.ContentPresenter.MeasureOverride(Size
constraint)
at
System.Windows.Controls.ScrollContentPresenter.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean
forceInfinityV)
at System.Windows.Controls.Grid.MeasureCellsGroup(Int32
cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean
forceInfinityV)
at System.Windows.Controls.Grid.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.ScrollViewer.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Border.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Control.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.DockPanel.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean
forceInfinityV)
at System.Windows.Controls.Grid.MeasureCellsGroup(Int32
cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean
forceInfinityV)
at System.Windows.Controls.Grid.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean
forceInfinityV)
at System.Windows.Controls.Grid.MeasureCellsGroup(Int32
cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean
forceInfinityV)
at System.Windows.Controls.Grid.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.DockPanel.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement
element, Size constraint)
at
System.Windows.Controls.ContentPresenter.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Decorator.MeasureOverride(Size
constraint)
at
System.Windows.Documents.AdornerDecorator.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Border.MeasureOverride(Size
constraint)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Window.MeasureOverrideHelper(Size constraint)
at System.Windows.Window.MeasureOverride(Size availableSize)
at System.Windows.FrameworkElement.MeasureCore(Size
availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Interop.HwndSource.SetLayoutSize()
at
System.Windows.Interop.HwndSource.set_RootVisualInternal(Visual value)
at System.Windows.Interop.HwndSource.set_RootVisual(Visual
value)
at System.Windows.Window.SetupInitialState(Double requestedTop,
Double requestedLeft, Double requestedWidth, Double requestedHeight)
at System.Windows.Window.CreateSourceWindowImpl()
at System.Windows.Window.SafeCreateWindow()
at System.Windows.Window.ShowHelper(Object booleanBox)
at
System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate
callback, Object args, Boolean isSingleParameter)
at
System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source,
Delegate callback, Object args, Boolean isSingleParameter, Delegate
catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at
System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object
state)
at System.Threading.ExecutionContext.runTryCode(Object
userData)
at
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode
code, CleanupCode backoutCode, Object userData)
at
System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd,
Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr
wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at
System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate
callback, Object args, Boolean isSingleParameter)
at
System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source,
Delegate callback, Object args, Boolean isSingleParameter, Delegate
catchHandler)
at
System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority
priority, TimeSpan timeout, Delegate method, Object args, Boolean
isSingleParameter)
at
System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority
priority, Delegate method, Object arg)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32
msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at
System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame
frame)
at
System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at NeptuneFTP.App.Main() in C:\Users\Mike\Documents\Visual
Studio 2005\Projects\NeptuneFTP\NeptuneFTP\obj\Debug\App.g.cs:line 0
at System.AppDomain.nExecuteAssembly(Assembly assembly,
String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile,
Evidence assemblySecurity, String[] args)
at
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object
state)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

All I'm trying to do is make the expand the height of the StackPanel
to include the Grid containing the TextBox and PasswordBox. Can anyone
tell me the proper way to bind to the animation To, From, and By
properties and how to bind to a property of an element within the
DataTemplate?

Thanks!
-Mike-


My System SpecsSystem Spec
Old 05-18-2007   #2 (permalink)
mikesnoise@gmail.com
Guest


 

Re: Problem binding animation to element in a template

For some reason I don't see my >>> marks around the code I meant to
point out. Here is the line that causes all the trouble:

<DoubleAnimation Storyboard.TargetName="itemContainer"
Storyboard.TargetProperty="Height" Duration="0:0:0.2" By="{Binding
ElementName=entryContainer, Path=Height}"/>

Can someone tell me why this causes the exception I put in the
previous post? And, more importantly, can someone show me the proper
way to bind an animation property to a property of an element in a
DataTemplate?

-Mike-

My System SpecsSystem Spec
Closed Thread

Thread Tools
Display Modes



Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem with Empty XML Element Nodes in PowerShell MinersC PowerShell 3 07-29-2008 09:41 PM
Template Binding for AccessText.TextAlignment not working muchinger Avalon 0 10-25-2007 06:15 AM
Accessing an Array element(i) from a XAML "binding path" iterationx Avalon 1 03-23-2007 11:17 AM
Animation problem :( Chris May Vista General 3 12-08-2006 09:14 AM
problem after animation has been applied Ranj Avalon 4 05-02-2006 05:13 AM


Vistax64.com is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media 2005-2008

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51