We're using the Windows 8 theme. From what I can tell the SetPropertiesAccordingIsBusy method is attempting to start the "Hide" animation. That animation includes a storyboard that tries to fade the visibility of the nested 'Indicator' grid. All of that is pretty statically find inside the telerik.windows.controls.xaml.
Is this a bug? Is there something I could've done to have caused this?
17 Answers, 1 is accepted
We have tried to reproduce the issue in a simple project, but with no luck. So it could be great if you can isolate it in a simple project and send it to us. Also simple steps to reproduce could be helpful.
Nevertheless can you confirm that you are using 2013.1.220 and does it only happens in Widnows8 theme or it could be reproduce with other themes also?
Kind regards,
Georgi
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
As for making a project which can reproduce it, it will take some time.
We have tested it in a simple application containing nested BusyIndicators with the Q3 2012 assemblies, but still no luck. I am attaching my test project just in case.
So it would be best if you can send us a simple project showing the issue. Please take as long as you need we would be happy to assist you further.
All the best,
Georgi
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
I've recently seen another similar looking stack trace for a problem testers are encountering with our use of RadBusyIndicator:
---------------START--------------------
7/28/2013 1:56:08 PM Error 0 ActivityId UI, System Title An unhandled error has occurred for malpha - System.InvalidOperationException: 2212 An error has occurred.
at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
at MS.Internal.XcpImports.MethodEx(DependencyObject obj, String name)
at MS.Internal.XcpImports.Storyboard_Begin(Storyboard storyboard)
at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Action completeCallback, Boolean animateSelf, Object[] args)
at Telerik.Windows.Controls.RadBusyIndicator.SetPropertiesAccordingIsBusy()
at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyPropertyChangedEventArgs e)
at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at Telerik.Windows.PropertyMetadata.PropertyChangeHook.OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)
at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)
at System.Windows.DependencyObject.RefreshExpression(DependencyProperty dp)
at System.Windows.Data.BindingExpression.SendDataToTarget()
at System.Windows.Data.BindingExpression.SourcePropertyChanged(PropertyPathListener sender, PropertyPathChangedEventArgs args)
at System.Windows.PropertyPathListener.ReconnectPath()
at System.Windows.PropertyPathListener.RaisePropertyPathStepChanged(PropertyPathStep source)
at System.Windows.PropertyAccessPathStep.RaisePropertyPathStepChanged(PropertyListener source)
at System.Windows.CLRPropertyListener.SourcePropertyChanged(Object sender, PropertyChangedEventArgs args)
at System.Windows.Data.WeakPropertyChangedListener.PropertyChangedCallback(Object sender, PropertyChangedEventArgs args)
at System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e)
at CIN.Ag.Model.PropertyChangeSupport.<>c__DisplayClass1.<NotifyPropertyChanged>b__0() 0 Silverlight AppDomain
----------------END---------------------
Again, this is somewhere in the RadBusyIndicator reacting to a property change notification that leads to its busy state changing and its animation trying to start (or stop? not sure).
Since this is so difficult to reproduce, do you have any suggestions of the best way to track down what may be causing this? Tweaks to styles? Diagnostic modes I can turn on? Anything?
P.S. We're using Telerik.Windows.Controls, Version=2013.1.415.1050, Culture=neutral, PublicKeyToken=5803cfa389c90ce7
Here is style template that I use
<
ResourceDictionary
xmlns:telerik
=
"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
xmlns:animation
=
"clr-namespace:Telerik.Windows.Controls.Animation;assembly=Telerik.Windows.Controls"
xmlns:sys
=
"clr-namespace:System;assembly=mscorlib"
xmlns:telerikShapes
=
"clr-namespace:Telerik.Windows.Shapes;assembly=Telerik.Windows.Controls"
>
<
ResourceDictionary.MergedDictionaries
>
<
ResourceDictionary
Source
=
"/Wave.Platform.PortalFramework.Infrastructure;component/PortalVisualResources/PortalBaseResourceDictionary.xaml"
/>
<
telerik:Windows8ResourceDictionary
/>
</
ResourceDictionary.MergedDictionaries
>
<!--RadBusyIndicator-->
<
SolidColorBrush
x:Key
=
"ProgressBarBackground_Nomral"
Color
=
"#F0EFF6"
/>
<
SolidColorBrush
x:Key
=
"ProgressBarBackground_Loaded"
Color
=
"{Binding Path=Palette.AccentColor, Source={StaticResource Windows8Colors}}"
/>
<
SolidColorBrush
x:Key
=
"BusyIndicatorBusyOverlayBrush"
Color
=
"Transparent"
/>
<
SolidColorBrush
x:Key
=
"BusyIndicatorBorder"
Color
=
"Transparent"
/>
<
SolidColorBrush
x:Key
=
"BusyIndicatorBackground"
Color
=
"Transparent"
/>
<
SolidColorBrush
x:Key
=
"BusyIndicatorForeground"
Color
=
"{Binding Path=Palette.AccentColor, Source={StaticResource Windows8Colors}}"
/>
<
LinearGradientBrush
x:Key
=
"ProgressBarBorder2"
EndPoint
=
"0.04,0.5"
StartPoint
=
"0.972,0.5"
>
<
GradientStop
Color
=
"#FF707070"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#FF707070"
Offset
=
"1"
/>
<
GradientStop
Color
=
"#FFA3A3A3"
Offset
=
"0.5"
/>
<
GradientStop
Color
=
"#FF707070"
Offset
=
"0.993"
/>
</
LinearGradientBrush
>
<
LinearGradientBrush
x:Key
=
"ProgressBarBorder"
EndPoint
=
"0.04,0.5"
StartPoint
=
"0.972,0.5"
>
<
GradientStop
Color
=
"#00F1F1F1"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#00F1F1F1"
Offset
=
"1"
/>
<
GradientStop
Color
=
"#00F1F1F1"
Offset
=
"0.5"
/>
<
GradientStop
Color
=
"#00F1F1F1"
Offset
=
"0.993"
/>
</
LinearGradientBrush
>
<
RadialGradientBrush
x:Key
=
"ProgressBarBackground_Indeterminate"
Center
=
"0.5,-0.23"
GradientOrigin
=
"0.8,0.25"
RadiusX
=
"0.68"
RadiusY
=
"0.68"
>
<
GradientStop
Color
=
"{Binding Path=Palette.AccentColor, Source={StaticResource Windows8Colors}}"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#00FFFFFF"
Offset
=
"1"
/>
<
GradientStop
Color
=
"#213E6AF4"
Offset
=
"0.65"
/>
</
RadialGradientBrush
>
<
ControlTemplate
x:Key
=
"BusyIndicatorProgressBarControlTemplate"
TargetType
=
"telerik:RadProgressBar"
>
<
Grid
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"CommonStates"
>
<
VisualState
x:Name
=
"Determinate"
/>
<
VisualState
x:Name
=
"Indeterminate"
>
<
Storyboard
RepeatBehavior
=
"Forever"
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetName
=
"IndeterminateDonut"
Storyboard.TargetProperty
=
"Visibility"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetName
=
"ProgressIndicator"
Storyboard.TargetProperty
=
"Visibility"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Collapsed</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
DoubleAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Storyboard.TargetName
=
"IndeterminateDonut"
Storyboard.TargetProperty
=
"(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)"
>
<
SplineDoubleKeyFrame
KeyTime
=
"00:00:01"
Value
=
"360"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
Path
x:Name
=
"IndeterminateBackgroundDonut"
RenderTransformOrigin
=
"0.5 0.5"
Stroke
=
"{StaticResource ProgressBarBorder}"
Fill
=
"{StaticResource ProgressBarBackground_Nomral}"
Height
=
"44"
Width
=
"44"
>
<
Path.Data
>
<
GeometryGroup
FillRule
=
"EvenOdd"
>
<
EllipseGeometry
Center
=
"22 22"
RadiusX
=
"20.5"
RadiusY
=
"20.5"
/>
<
EllipseGeometry
Center
=
"22 22"
RadiusX
=
"14.5"
RadiusY
=
"14.5"
/>
</
GeometryGroup
>
</
Path.Data
>
</
Path
>
<
Path
x:Name
=
"IndeterminateDonut"
Visibility
=
"Collapsed"
Fill
=
"{StaticResource ProgressBarBackground_Indeterminate}"
RenderTransformOrigin
=
"0.5 0.5"
Height
=
"44"
Width
=
"44"
>
<
Path.RenderTransform
>
<
TransformGroup
>
<
RotateTransform
/>
</
TransformGroup
>
</
Path.RenderTransform
>
<
Path.Data
>
<
GeometryGroup
FillRule
=
"EvenOdd"
>
<
EllipseGeometry
Center
=
"22 22"
RadiusX
=
"20"
RadiusY
=
"20"
/>
<
EllipseGeometry
Center
=
"22 22"
RadiusX
=
"14"
RadiusY
=
"14"
/>
</
GeometryGroup
>
</
Path.Data
>
</
Path
>
<
telerikShapes:Arc
x:Name
=
"ProgressIndicator"
Width
=
"42"
Height
=
"42"
Diameter
=
"42"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
Progress
=
"{TemplateBinding Value}"
MinimumProgress
=
"{TemplateBinding Minimum}"
MaximumProgress
=
"{TemplateBinding Maximum}"
ArcThickness
=
"7"
Fill
=
"{StaticResource ProgressBarBackground_Loaded}"
StartAngle
=
"-89.999"
EndAngle
=
"269.999"
/>
</
Grid
>
</
ControlTemplate
>
<
Style
x:Key
=
"BusyIndicatorProgressBarStyle"
TargetType
=
"telerik:RadProgressBar"
>
<
Setter
Property
=
"Maximum"
Value
=
"100"
/>
<
Setter
Property
=
"Orientation"
Value
=
"Horizontal"
/>
<
Setter
Property
=
"IsTabStop"
Value
=
"False"
/>
<
Setter
Property
=
"Foreground"
Value
=
"{StaticResource ProgressBarBackground_Loaded}"
/>
<
Setter
Property
=
"Template"
Value
=
"{StaticResource BusyIndicatorProgressBarControlTemplate}"
/>
<
Setter
Property
=
"IsIndeterminate"
Value
=
"True"
/>
</
Style
>
<
ControlTemplate
x:Key
=
"RadBusyIndicatorControlTemplate"
TargetType
=
"telerik:RadBusyIndicator"
>
<
Grid
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"VisibilityStates"
>
<
VisualState
x:Name
=
"Hidden"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Duration
=
"00:00:00.001"
Storyboard.TargetName
=
"IndicatorVisual"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Collapsed</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Duration
=
"00:00:00.001"
Storyboard.TargetName
=
"Overlay"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Collapsed</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Visible"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Duration
=
"00:00:00.001"
Storyboard.TargetName
=
"IndicatorVisual"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Duration
=
"00:00:00.001"
Storyboard.TargetName
=
"Overlay"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
<
VisualStateGroup
x:Name
=
"BusyStatusStates"
>
<
VisualState
x:Name
=
"Idle"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Duration
=
"00:00:00.001"
Storyboard.TargetName
=
"Content"
Storyboard.TargetProperty
=
"(Control.IsEnabled)"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
sys:Boolean
>True</
sys:Boolean
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Duration
=
"0"
Storyboard.TargetName
=
"ProgressBar"
Storyboard.TargetProperty
=
"IsIndeterminate"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
sys:Boolean
>False</
sys:Boolean
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Busy"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Duration
=
"00:00:00.001"
Storyboard.TargetName
=
"Content"
Storyboard.TargetProperty
=
"(Control.IsEnabled)"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
sys:Boolean
>False</
sys:Boolean
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
ContentControl
x:Name
=
"Content"
IsTabStop
=
"False"
HorizontalContentAlignment
=
"{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment
=
"{TemplateBinding VerticalContentAlignment}"
IsEnabled
=
"False"
Content
=
"{TemplateBinding Content}"
ContentTemplate
=
"{TemplateBinding ContentTemplate}"
/>
<
Grid
x:Name
=
"Indicator"
>
<
Rectangle
x:Name
=
"Overlay"
Style
=
"{TemplateBinding OverlayStyle}"
/>
<
Border
x:Name
=
"IndicatorVisual"
MinWidth
=
"180"
CornerRadius
=
"2"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
Background
=
"{TemplateBinding Background}"
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"{TemplateBinding BorderThickness}"
>
<
StackPanel
>
<
telerik:RadProgressBar
x:Name
=
"ProgressBar"
Margin
=
"10 10 10 5"
IsIndeterminate
=
"{TemplateBinding IsIndeterminate}"
Value
=
"{TemplateBinding ProgressValue}"
Style
=
"{TemplateBinding ProgressBarStyle}"
/>
<
ContentPresenter
Margin
=
"10 5 10 10"
HorizontalAlignment
=
"Center"
Content
=
"{TemplateBinding BusyContent}"
ContentTemplate
=
"{TemplateBinding BusyContentTemplate}"
/>
</
StackPanel
>
</
Border
>
</
Grid
>
</
Grid
>
</
ControlTemplate
>
<
Style
x:Key
=
"OverlayStyle"
TargetType
=
"Rectangle"
>
<
Setter
Property
=
"Fill"
Value
=
"{StaticResource BusyIndicatorBusyOverlayBrush}"
/>
</
Style
>
<
Style
x:Key
=
"RadBusyIndicatorStyle"
TargetType
=
"telerik:RadBusyIndicator"
>
<
Setter
Property
=
"IsTabStop"
Value
=
"False"
/>
<
Setter
Property
=
"DisplayAfter"
Value
=
"00:00:00.1"
/>
<
Setter
Property
=
"Foreground"
Value
=
"{StaticResource BusyIndicatorForeground}"
/>
<
Setter
Property
=
"BorderBrush"
Value
=
"{StaticResource BusyIndicatorBorder}"
/>
<
Setter
Property
=
"Background"
Value
=
"{StaticResource BusyIndicatorBackground}"
/>
<
Setter
Property
=
"BorderThickness"
Value
=
"1"
/>
<
Setter
Property
=
"HorizontalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"VerticalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"ProgressBarStyle"
Value
=
"{StaticResource BusyIndicatorProgressBarStyle}"
/>
<
Setter
Property
=
"OverlayStyle"
Value
=
"{StaticResource OverlayStyle}"
/>
<
Setter
Property
=
"animation:AnimationManager.AnimationSelector"
>
<
Setter.Value
>
<
animation:AnimationSelector
>
<
animation:FadeAnimation
AnimationName
=
"Hide"
Direction
=
"Out"
TargetElementName
=
"Indicator"
/>
<
animation:FadeAnimation
AnimationName
=
"Show"
Direction
=
"In"
TargetElementName
=
"Indicator"
/>
</
animation:AnimationSelector
>
</
Setter.Value
>
</
Setter
>
<
Setter
Property
=
"Template"
Value
=
"{StaticResource RadBusyIndicatorControlTemplate}"
/>
</
Style
>
<
Style
TargetType
=
"telerik:RadBusyIndicator"
BasedOn
=
"{StaticResource RadBusyIndicatorStyle}"
/>
</
ResourceDictionary
>
This bug is very rare and is happing when change state from true to false (loading).
Message = "Animation target not specified."
" at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)\r\n at MS.Internal.XcpImports.MethodEx(DependencyObject obj, String name)\r\n at System.Windows.Media.Animation.Storyboard.Begin()\r\n at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Action completeCallback, Boolean animateSelf, Object[] args)\r\n at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Boolean animateSelf)\r\n at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName)\r\n at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyIndicationVisibleChanged(DependencyPropertyChangedEventArgs e)\r\n at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyIndicationVisiblePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)\r\n at Telerik.Windows.PropertyMetadata.PropertyChangeHook.OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)\r\n at System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)\r\n at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)\r\n at System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet, Boolean isBindingInStyleSetter)\r\n at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)\r\n at Telerik.Windows.DependencyPropertyExtensions.SetValue(DependencyObject element, DependencyPropertyKey key, Object value)\r\n at Telerik.Windows.Controls.RadBusyIndicator.set_IsBusyIndicationVisible(Boolean value)\r\n at Telerik.Windows.Controls.RadBusyIndicator.DisplayAfterTimerElapsed(Object sender, EventArgs e)\r\n at MS.Internal.CoreInvokeHandler.InvokeEventHandler(UInt32 typeIndex, Delegate handlerDelegate, Object sender, Object args)\r\n at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)"
at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
at MS.Internal.XcpImports.MethodEx(DependencyObject obj, String name)
at System.Windows.Media.Animation.Storyboard.Begin()
at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Action completeCallback, Boolean animateSelf, Object[] args)
at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Action completeCallback, Object[] args)
at Telerik.Windows.Controls.RadBusyIndicator.SetPropertiesAccordingIsBusy()
at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyPropertyChangedEventArgs e)
at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at Telerik.Windows.PropertyMetadata.PropertyChangeHook.OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)
at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)
at System.Windows.DependencyObject.RefreshExpression(DependencyProperty dp)
at System.Windows.Data.BindingExpression.SendDataToTarget()
at System.Windows.Data.BindingExpression.SourcePropertyChanged(PropertyPathListener sender, PropertyPathChangedEventArgs args)
at System.Windows.PropertyPathListener.ReconnectPath()
at System.Windows.Data.Debugging.BindingBreakPoint.<>c__DisplayClass4.<BreakOnSharedType>b__3()
We have created a test application with the Style Petar has provided, but as he said it is a rare issue and were not able to reproduce it. Also we have prepared a test that changes IsBusy in different scenarios and we have run it 100 times, but still no luck of reproducing it.
So Brian you can try similar approach - if you know some set of steps that could reproduce it - record it to a UI test and repeat it few times.
Also Brian do you have a custom theme applied to the BusyIndicator as this could lead us to the issue?
If so you can try reproducing the issue in a simple application with the custom theme applied.
Any video or steps guiding on how to reproduce the issue would be appricieated.
Hope this would help.
Regards,
Georgi
Telerik
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
When I started researching this leak, I stumbled upon this thread, only to find that my colleague, Kevin, had been trying to address this same issue a couple of months ago. Before that last attempt, we were using Telerik's stock Windows 8 them. Based on the earlier information in this thread, Kevin put in place an overridden style (<Style TargetType="telerik:RadProgressBar" x:Key="ProgressBarStyle">) with the easing functions commented out (based on your code you provided in this thread). Today I verified that that "fixed" style is in fact the one being applied to the RadBusyIndicator instance we see in our leaks. I had actually hoped I would find that we were somehow not applying the fixed style, but that wasn't the case.
I digressed. So our testers are testing the application as a whole. My own attempts to reproduce it are rarely successful. So it is very hard to isolate this problem even on my end. I don't expect a cleanroom, sandboxed test solution to reproduce the problem will cause whatever complex situation that leads to this. I can try, but not today.
Have you guys reached out to the other posters in this thread to see if their problems went away with the one-off fix in this thread?
Has your engineering team continued to investigate other possible causes?
If it would help, I could look into sharing our recorded ANTS Memory Profiler session with this leak in it with you guys.
For some reason we change some controls to use custom style. At this case "RadBusyIndicator" use "Dark theme (with circle)". Our tester at this point can not find this bug ;). One of my colleges in debug mode find this error and show me. I do not have time now, because different work priority but when I find free time I will make test programs and I will send to you or will make video at least.
Perhaps this is the same monster and the bug needs to be expanded to other controls.
Regards,
Mark
Thanks to Mark we were able to reproduce it and we have logged it here in our Public Issue Tracking System.
It seems like the issue Mark has reported and this one are related and both have the same source.
Also changing the theme at run time seems to help reproducing it. Most likely this is an AnimationManager problem and removing the animation could be used as a work around :
telerik:AnimationManager.IsAnimationEnabled="False".
Hope this would help.
Regards,
Georgi
Telerik
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
<
telerik:RadBusyIndicator
IsBusy
=
"{Binding BusyState.IsBusy}"
telerik:AnimationManager.IsAnimationEnabled
=
"False"
>
Yes, you had disabled the animation properly. Please note that
telerik:AnimationManager.IsAnimationEnabled
=
"False"
will disable only the animation shown when the BusyIndicator is opened/closed (show/hide) and it will not disable the animation inside of the BusyIndicator. But as it seems like the show/hide animation is causing the issue and disabling it should be enough in order to workaround it.If after disabling the animation you are still reproducing the issue, please don't hesitate to write us.
Regards,
Georgi
Telerik
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
We have performed detailed and extensive research on what could be causing the issue and it turned out that it is caused by a limitation of the Silverlight itself.
So we were not able to fix the issue in our code and therefore we have closed it.
Once again, we are sorry for the inconvenience caused.
Regards,
Georgi
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
I have hundreds of users using our application who are subject to these memory leaks. If my only option is to ditch Silverlight and Telerik, then I have a massive multi-year re-write staring me in the face.
I'm sorry to be so dramatic, but I'm really worried and I have very little actionable information to go on. I understand it is not Telerik's fault -- it's MIcrosoft's. But it's impacting customers trying to use Telerik's products.
I think that there is some misunderstanding as this forum thread is about "System.InvalidOperationException" with message "Animation target not specified." and this is the issues I was referring to in my previous post. Also the issue is hard to reproduce and as a workaround disabling the animation can be used.
Also I have noticed that you talk about memory leak earlier in the post, but i seems like it was intended for another forum post (leak in Windows8 theme) at that time.
If that is the case it would be best if you can open new support ticket where you can share more sensitive information like snapshot form memory profilers like Ants and JustTrace.
Regards,
Georgi
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.