I want to modify a stack panel, so when an item is removed from it all the items under it slides in animation upwards to fill the missing gap. what is the approach I need to take in order to achieve this ?
Use ListBox instead, and have its ItemsPanel be a StackPanel. Then, modify the style of the items to include an animation in AfterLoaded, BeforeLoaded, and BeforeUnloaded visual states.
http://msdn.microsoft.com/en-us/magazine/ff798276.aspx
Related
In extension of the first question I asked here How to Scroll to the Bottom of a ListBox when Items are Added where I discovered how to scroll a ListBox to the most recently added item, I'd like to be able to take this one step further and add in some sort of slide in animation to newly added items. How might this be possible? Any starting points would be of great help.
I use Telerik's DataBoundListBox, it supports add/remove animations in a easy declarative way.
so I have a question regarding my stackpanel I'm using.
Basically when I keep adding items (expenses/earnings) the into the stackpanel I will eventually be short on navigational space and ultimately the older entries be overwritten.
So at the moment it has a maximum of five entries that can be added and displayed all at one. However If I add another entry/item/expense etc the first entry will be removed/not seen in the stackpanel
So in the picture, as soon as a 6th item is added the 1st item in the list will be removed/not visible
Kind of hard to explain, hope you can help!
More code:
pivotItem XAML
ItemsList control XAML
put the stackpanel in a scrollviewer. This should allow for automatic resizing as more data is added and you can scroll through it as well
By default the next item in wp7 panorama bleeds into the currently selected panorama item by a few pixels and I would like to show a bit more of the next item.
Is there a way to control the amount of pixels? I tried setting margins and paddings and tried editing the controlTemplate, but had no success.
If you do this, aren't you going to be breaking the design guidelines for the Panorama control, therefore the control is no longer a Panorama control, making your application inconsistant with other applications using the unmodified version of the control?
You can give a panorama item a negative margin:
Margin="-24,0,0,0"
Ok, the way to do this is to wrap the content of the panoramaItem into a WrapPanel and set the orientation of the panoramaItem to horizontal.
I use listbox.ScrollIntoView(item), but as long as this item is in listbox view, it won't scroll.
Actually I want the item to be centered in the listbox's view. Is there anyway to do this?
Unfortunately this is not all that easy, it depends on whether your listbox is virtualized or not, which depends on the panel that it uses to render its contents. For a non-virtualizing listbox, you can set the vertical scroll position by invoking the following method on the ScrollViewer which is part of the listbox template, where offset is in pixels.
ScrollViewer.ScrollToVerticalOffset(offset);
For virtualizing, you can invoke the following method on the VirtualizingStackPanel, where offset is the list location (you can use a double value, i.e. scrolling to 3.5 will scroll to half way between index 3 and 4):
ItemsHostStackPanel.SetVerticalOffset(offset);
For how to use this code in context, look at the jump list control I implemented here:
http://wp7contrib.codeplex.com/SourceControl/changeset/view/72741#1502048
I have listbox in WP7 where i need to scroll to certain items according to user choice and i use scrolltoview for that. Problem is that i need listbox to scroll listbox enough so that selected item appears aligned to top edge. Right now scrolled item is positioned at bottom.
Assuming that you have fixed (and known) size items and a fixed (and known) size of listbox, can't you just account for the number of items between the top and bottom of the visible space and adjust your offset accordingly?
Unfortunately Matt solution was unusable in this case because listbox items were too big taking almost whole screen per item. But i was able to solve this problem by getting scrollviewer of listbox and use its scroll method to scroll into listbox SelectedIndex. Item is still not positioned perfectly after scrolling but height difference is minimal and acceptable for me.