I am evaluating the Beta xamCarouselListBox and it appears that it ignores the zOrder settings in the CarouselViewSettings. I am setting UseZOrder to true and have a collection of ZOrderEffectsStops. It is essentially a slight modification of the SkewXEffect Sample for the xamCarouselPanel (which does work). The xamCarouselListBox seems to simply arrange zOrder after the order in the list. Is this the intended behavior for this control?
I've pasted the code I am using below
Thanks.
<UserControl x:Class="LdsChurch.MSStack.Samples.HomeTeach.UI.People.PersonSearchView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:igWindows="http://infragistics.com/Windows"
xmlns:igDP="http://infragistics.com/DataPresenter"
xmlns:igEditors="http://infragistics.com/Editors"
<UserControl.Resources >
<Path x:Key="customHPath" xmlns:Fill="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF000000" Margin="151.5,7.5,-0.5,0" x:Name="customHPath" HorizontalAlignment="Left" Width="1" Data="M152,8 L152,400" Visibility="Hidden"/>
AutoScaleItemContentsToFit="True"
ItemPathHorizontalAlignment="Stretch"
ItemSize="505,505"
UseOpacity="True"
UseZOrder="True"
ItemsPerPage="5"
ItemPathPadding="0,0,0,70"
UseScaling="True"
<igWindows:CarouselViewSettings.ScalingEffectStops>
<igWindows:ScalingEffectStop Offset="0.4" Value="0.4"/>
<igWindows:ScalingEffectStop Offset="0.6" Value="0.4"/>
</igWindows:CarouselViewSettings.ScalingEffectStops>
<igWindows:OpacityEffectStop Offset=".15" Value="1"/>
<igWindows:OpacityEffectStop Offset=".85" Value="1"/>
<igWindows:CarouselViewSettings.SkewAngleXEffectStops>
<igWindows:SkewAngleXEffectStop Offset="0.45" Value="20"/>
<igWindows:SkewAngleXEffectStop Offset="0.55" Value="-20"/>
</igWindows:CarouselViewSettings.SkewAngleXEffectStops>
<igWindows:ZOrderEffectStop x:Uid="igWindows:ZOrderEffectStop_1"/>
<igWindows:ZOrderEffectStop x:Uid="igWindows:ZOrderEffectStop_3" Offset="1"/>
ItemPathHorizontalAlignment="Stretch" ItemPathVerticalAlignment="Stretch"
UseZOrder="False" IsListContinuous="True" ItemsPerPage="9" ItemPathAutoPad="False" ItemPathPadding="0,0,0,70" ScalingEffectStopDirection="UseItemPath" UseScaling="True" AllowDrop="True">
<igWindows:ScalingEffectStop Offset="0.0" Value="0.4"/>
<igWindows:ScalingEffectStop Offset="0.5" Value="1.0"/>
<igWindows:ScalingEffectStop Offset="1.0" Value="0.4"/>
<igWindows:CarouselViewSettings.OpacityEffectStops>
<igWindows:OpacityEffectStop Offset=".5" Value="1"/>
</igWindows:CarouselViewSettings.OpacityEffectStops>
<igWindows:SkewAngleYEffectStop Offset="0.15" Value="-20"/>
<igWindows:SkewAngleYEffectStop Offset="0.5" Value="0"/>
<igWindows:SkewAngleYEffectStop Offset="0.85" Value="20"/>
<igWindows:CarouselViewSettings.ZOrderEffectStops>
<igWindows:ZOrderEffectStop Offset="0.5" Value="1"/>
</igWindows:CarouselViewSettings.ZOrderEffectStops>
</UserControl.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<Grid.ColumnDefinitions>
<igWindows:XamCarouselListBox.ItemTemplate>
<StackPanel >
<Image Height="100" Source="{Binding Path=FullImagePath}"/>
</StackPanel>
</igWindows:XamCarouselListBox.ItemTemplate>
<ComboBox Height="26" HorizontalAlignment="Left" Name="pickViewSettings" VerticalAlignment="Top" Width="121" >
<my:String>test1</my:String>
</Grid>
</UserControl>
Hi Matt -
Looking at your sample code, it appears that the XamCarouselListBox 'PersonCarousel' is using the ViewSettings resource called 'itunesViewSettings'. The problem is that itunesViewSettings has UseZOrder set to false. Perhaps you intended to use the other ViewSettings resource called itunesHViewSettings?
Setting UseZOrder to true should fix the problem.
Hi Joe,
Thanks for responding. Apologies for that. It looks like I might have pasted some code that was in transtion. Anyway, I cleaned up the code a bit and I am still seeing the problem. Just to make sure I am not going crazy I had a xamCarouselListBox and a xamCarouselPanel use the same CarouselViewSettings. I also took out the data binding just to make sure that wasn't the issue. I display both controls on the form and the xamCarouselPanel exhibits the expected zorder behavoir, but the xamCarouselListBox does not. I've pasted the XAML and the code I use to populate the controls below:
I have a screenshot. I've uploaded it here:
http://public.box.net/box46746
thx.
<UserControl x:Class="LdsChurch.MSStack.Samples.HomeTeach.UI.People.PersonSearchView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:igWindows="http://infragistics.com/Windows" xmlns:igDP="http://infragistics.com/DataPresenter" xmlns:igEditors="http://infragistics.com/Editors" xmlns:igChart="http://infragistics.com/Chart" xmlns:my="clr-namespace:System;assembly=mscorlib">
<UserControl.Resources > <Path x:Key="customPath" xmlns:Fill="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF000000" Margin="7.5,151.5,-0.5,0" x:Name="customPath" VerticalAlignment="Top" Height="1" Data="M8,152 L400,152" Visibility="Hidden"/> <igWindows:CarouselViewSettings x:Key ="itunesViewSettings" AutoScaleItemContentsToFit="True" ItemPath="{StaticResource customPath}" ItemPathHorizontalAlignment="Stretch" ItemPathVerticalAlignment="Stretch" ItemSize="505,505" ItemTransitionStyle="AdjustOpacity" UseOpacity="True" UseSkewing="True" UseZOrder="True" IsListContinuous="True" ItemsPerPage="9" ItemPathAutoPad="False" ItemPathPadding="0,0,0,70" ScalingEffectStopDirection="UseItemPath" UseScaling="True" AllowDrop="True"> <igWindows:CarouselViewSettings.ScalingEffectStops> <igWindows:ScalingEffectStop Offset="0.0" Value="0.4"/> <igWindows:ScalingEffectStop Offset="0.4" Value="0.4"/> <igWindows:ScalingEffectStop Offset="0.5" Value="1.0"/> <igWindows:ScalingEffectStop Offset="0.6" Value="0.4"/> <igWindows:ScalingEffectStop Offset="1.0" Value="0.4"/> </igWindows:CarouselViewSettings.ScalingEffectStops> <igWindows:CarouselViewSettings.OpacityEffectStops> <igWindows:OpacityEffectStop Offset=".15" Value="1"/> <igWindows:OpacityEffectStop Offset=".5" Value="1"/> <igWindows:OpacityEffectStop Offset=".85" Value="1"/> </igWindows:CarouselViewSettings.OpacityEffectStops> <igWindows:CarouselViewSettings.SkewAngleYEffectStops> <igWindows:SkewAngleYEffectStop Offset="0.15" Value="-20"/> <igWindows:SkewAngleYEffectStop Offset="0.45" Value="-20"/> <igWindows:SkewAngleYEffectStop Offset="0.5" Value="0"/> <igWindows:SkewAngleYEffectStop Offset="0.55" Value="20"/> <igWindows:SkewAngleYEffectStop Offset="0.85" Value="20"/> </igWindows:CarouselViewSettings.SkewAngleYEffectStops> <igWindows:CarouselViewSettings.ZOrderEffectStops> <igWindows:ZOrderEffectStop x:Uid="igWindows:ZOrderEffectStop_1"/> <igWindows:ZOrderEffectStop x:Uid="igWindows:ZOrderEffectStop_2" Offset="0.5" Value="1"/> <igWindows:ZOrderEffectStop x:Uid="igWindows:ZOrderEffectStop_3" Offset="1"/> </igWindows:CarouselViewSettings.ZOrderEffectStops> </igWindows:CarouselViewSettings> </UserControl.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="50" /> <RowDefinition Height="400" /> <RowDefinition Height="400"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> </Grid.ColumnDefinitions>
<igWindows:XamCarouselListBox Grid.Row="1" Name="PersonCarousel" ViewSettings="{StaticResource itunesViewSettings}"/> <igWindows:XamCarouselPanel Grid.Row="2" Name="PersonCarouselPanel" ViewSettings="{StaticResource itunesViewSettings}"/>
<StackPanel Grid.Row ="0" Orientation="Horizontal"> <ComboBox Height="26" HorizontalAlignment="Left" Name="pickViewSettings" VerticalAlignment="Top" Width="121" > <my:String>test</my:String> <my:String>test1</my:String> </ComboBox> <Label Content="Layout Settings"/> </StackPanel>
<!-- <Label Name="PersonResult" Content="Place your controls here" /> --> </Grid></UserControl>
----------------------
code snippet that populates the data
{
Label NameLabel = new Label(); NameLabel.Content = result.Name; sp.Children.Add(NameLabel);
Label pathLabel = new Label(); pathLabel.Content = result.FullImagePath; sp.Children.Add(pathLabel);
sp = new StackPanel();
image = new Image(); image.Source = new BitmapImage(new Uri(result.FullImagePath)); sp.Children.Add(image);
}
I've also experienced zOrder problems in Beta 2. I can email my full app if required? My markup works fine on vol 1:
<my:XamCarouselListBox Name="car" ItemTemplate="{StaticResource ECDataTemplate}"> <my:XamCarouselListBox.ViewSettings> <my:CarouselViewSettings IsListContinuous="True" IsNavigatorVisible="False" ItemsPerPage="7" UseOpacity="True" UseScaling="True" UseZOrder="True" AutoScaleItemContentsToFit="False" ItemSize="400,200" ItemVerticalScrollBarVisibility="Hidden" ItemHorizontalScrollBarVisibility="Hidden" ItemPathAutoPad="False" ItemPathPadding="-30,15,260,260" ItemPathStretch="Fill" ReserveSpaceForReflections="False"> <my:CarouselViewSettings.ItemPath> <Path Margin="0" Stretch="None" Opacity="1" Data="M0,400 L600,0" Stroke="#FFB4B4B4" StrokeThickness="1" /> </my:CarouselViewSettings.ItemPath> <my:CarouselViewSettings.OpacityEffectStops> <my:OpacityEffectStopCollection> <my:OpacityEffectStop Offset="0" Value="0.5" /> <my:OpacityEffectStop Offset="0.3" Value="0.8" /> <my:OpacityEffectStop Offset="0.6" Value="1.0" /> <my:OpacityEffectStop Offset="0.9" Value="0.8" /> <my:OpacityEffectStop Offset="1" Value="0.5" /> </my:OpacityEffectStopCollection> </my:CarouselViewSettings.OpacityEffectStops> <my:CarouselViewSettings.ScalingEffectStops> <my:ScalingEffectStopCollection> <my:ScalingEffectStop/> <my:ScalingEffectStop Offset="0.6" Value="1.5"/> <my:ScalingEffectStop Offset="1"/> </my:ScalingEffectStopCollection> </my:CarouselViewSettings.ScalingEffectStops> <my:CarouselViewSettings.ZOrderEffectStops> <my:ZOrderEffectStop /> <my:ZOrderEffectStop Offset="0.6" Value="1" /> <my:ZOrderEffectStop Offset="1" /> </my:CarouselViewSettings.ZOrderEffectStops> </my:CarouselViewSettings> </my:XamCarouselListBox.ViewSettings> </my:XamCarouselListBox>
Thanks Joe, I will.
BTW I did try to report this formally as a bug, but was told beta releases wern't supported and I couldn't!!
Of course, I understand you can't 'support' beta releases, but you should offer a bug reporting service - otherwise what's the point of a beta release???
John
Reported on 7 Dec 2007, ref XCL15:
Summary:
zOrder is not respected in vol 2 beta carousel
Description:
A zOrder like this does not work on Vol 2 beta:
<my:CarouselViewSettings.ZOrderEffectStops>
<my:ZOrderEffectStop />
<my:ZOrderEffectStop Offset="0.6" Value="1" />
<my:ZOrderEffectStop Offset="1" />
</my:CarouselViewSettings.ZOrderEffectStops>
My sample project doesn't seem to get through as an email - tried twice now. But it should be easy enough to replicate with the zorder I gave above.
I've also noticed I get the following exceptions in my output window:
System.Windows.Data Error: 35 : BindingExpression path error: 'ZIndex' property not found on 'object' ''b' (HashCode=11255991)'. BindingExpression:Path=ZIndex; DataItem='b' (HashCode=11255991); target element is 'CarouselListBoxItem' (Name=''); target property is 'ZIndex' (type 'Int32')
Looks related to the issue? If the zorder can't bind, that would be why it's disregarded.
I never got the Weds one! But received it now, and source code sent back.
Any news on this Joe? If you let me have your email I can send a test case.