This questions is mainly for Windows Phone devs, but I guess any XAML technology is applicable.
My VirtualizingStackPanel works great and I can see the improvements in memory usage. However, the items I have in the ListBox are variable in height and can be quite complex to instantiate/bind.
When scrolling really fast, you start to see dead space while the panel is catching up. It seems to me that this issue could be fixed if the panel has the ability to render more items in advance.
At this point, I have a feeling it only renders 1 or 2 more items past the last visible item. Is there a way to increase this number? Can it render 5 items ahead?
If the answer is "no", is there a way to trick/hack it?
Use LongListSelector instead of ListBox.
Try to deal with virtualization mode
Related
My VB.Net application is using anchoring to force certain controls to resize to their container, eg a list box on a form. This is all pretty standard and easy to do. However having just released the application into production I've found that on one user's computer the anchoring seems to just be ignored. She has Windows 7, as do I.
So far example what should look like this:
instead looks like this
I asked her to try a higher resolution on her screen but that didn't to help.
On one of them I was able to fix it by manually setting the width and height in form load properties of the control instead of anchoring it, but it seems a bit backward.
It looks to me like the form has been resized to be too small for the anchoring to work correctly. Set the .MinimumSize property of the form to ensure the form does not get too small for your layout.
Older staff sometimes reduce the screen dpi to make text easier to read, which means the screen may not be big enough to display the form. To fix this, set the screen dpi back to something reasonable and increase the text size for readability.
Turned out to be that the display issues were caused by user having the "Font Size" setting on her computer set to 200%. To be honest I didn't even know you could do that.
I'm writing a logging application which is using a QListView with custom QStandardItems to display the log data. I have implemented filters in the app that will color the matching rows differently and when changing a filter I have to manipulate every item in the list, which after a while gets very slow. I'm not sure what's causing this yet, but I wonder if it could be that it repaints after every item change. If that is the case, could I somehow tell QT to not repaint until I'm done manipulating all the items?
Thanks for any help!
For helping others, I could add that I fixed this by implementing my own view that handles the paint event itself and only paints the rows currently visible on screen. This makes it extremely fast and no internal QT view seem to be able to do something similar.
I am using Panaroma control to display list of items. The problem i am facing is that after last item it will again continue to display the items from first . I just want it will go from first to last item in one swipe direction and viceversa in another direction. How to achieve this?
That's the natural behavior of the Panorama control, and I suggest you not to manipulate it. Even if you do it'll be a concern from the user's perspectives as it's the usual behavior in a Windows Phone app.
Disable Panorama looping
If you really wanted to, then have a look at this & How to stop pivot looping.
You cannot stop looping items in a Panorama Control. But you can stop looping Pivot Items by simply setting YourPivot.IsLock=true when you are in the last Pivot Item.
And you can unlock the Pivot, by detecting the swipe direction.
I'm trying to mimic the functionality of the NetFlix app, with a strip on the left that collapses on scrolling, I had to offset the tiles on the GridView a bit to the right so that they can accomodate that behavior. They seem to work alright in keyboard and scroll completely to the right (although I noticed the scrollbar suddenly grows in size when I hit the left boundaries. this totally changes when I use it on touch - I seem to have a limit on the right and the scrolling doesnt scroll past the last 100 pixels or so. how do I take care of this.
I'm assuming it is related to the bug here, but didn't seem to solve the problem with that solution there.
"Sticky scrolling" issue in WinRT XAML GridView control
Jay, I bet you solved it in the meantime. But I'll add my solution here anyway; it might save time for other fellows.
This effect - not being able to scroll to the very right end horizontally with touch - did go away when I either:
*) changed the VirtualizingStackPanel to a StackPanel
OR
*) Grouped the GridView (with VirtualizingStackPanel in the ItemsPanelTemplate) into a simple ScrollViewer
Hope that helps!
I'm using tooltips for icons that are displayed in a dijit.Dialog. Sometimes they work just fine, but other times they get placed around 25 to 50 pixels further away from the target than they should be. I can't see any pattern to when this happens. Any ideas on why the screen placement would be varying in this way?
Thanks,
Karl
you can use dijit.showTooltip and dijit.hideTooltip. Here is an example on how to show tooltips on complex dijits such as FilteringSelect and ComboBox with this simple techinque
http://jsfiddle.net/jleviaguirre/Xqz8Z/6/