I am trying to dynamically show/hide the ZoomBar based on a flag in code.
I tried this in code-behind:
XamZoombar zoom = this.xamTimeline.Zoombar; if (zoom != null) { if (zoom.Visibility == System.Windows.Visibility.Visible) { zoom.Visibility = System.Windows.Visibility.Collapsed; } else { zoom.Visibility = System.Windows.Visibility.Visible; } }
That works, however then I have a white space at the bottom where the zoombar used to be shown. The "content" portion of the TimeLine control does not resize itself to fill out the space.
I also found this post on setting the style: http://forums.infragistics.com/forums/p/22933/84022.aspx#84022
So I tried this:
if (blnHide == true) { var newStyle = this.Resources["ZoombarStyleHidden"] as Style; this.xamTimeline.ZoombarStyle = newStyle; } else { var newStyle = this.Resources["ZoombarStyleNormal"] as Style; this.xamTimeline.ZoombarStyle = newStyle; }
This works to hide the ZoomBar, but then I never can get it to show again, it remains hidden even if I set the style to ZoombarStyleNormal. Here are the style definitions:
<Style x:Key="ZoombarStyleHidden" TargetType="ig:XamZoombar"> <Setter Property="Visibility" Value="Collapsed" /> </Style> <Style x:Key="ZoombarStyleNormal" TargetType="ig:XamZoombar"> <Setter Property="Visibility" Value="Visible" /> </Style>
Any suggestions what I am doing wrong? Do I need to define the "full" style for the ZoombarStyleNormal as given here: http://forums.infragistics.com/forums/t/32065.aspx I would rather not have this big style in my XAML and just reset the Zoombar to using it's default style.
Thank you,
Mike
This work around works and the "content" area of the timeline control resizes automatically when the zoomBar is hidden and shown again.
It seems that we have some issue with re-showing the Zoombar when change the style. We found this issue and we’ll try fixing it asap.
In meantime you can use this code:
if (this.timeline.Zoombar == null)
{
return;
}
FrameworkElement parent = this.timeline.Zoombar.Parent as FrameworkElement;
if (parent != null)
if (parent.Visibility == System.Windows.Visibility.Visible)
parent.Visibility = System.Windows.Visibility.Collapsed;
else
parent.Visibility = System.Windows.Visibility.Visible;