I am investigating a weird scrolling behavior in our app, I have more or less reproduced it in the attached sample app. I say 'more or less' because the little sample doesn't exactly have the same structure as our app but the result looks to be the same as what is happening in our software.
When declaring an unnamed style that targets the RadTileViewItem, scrolling the minimized TileViewItems while have one in the Maximized state, reverts all the minimized ones to their 'Normal' state as well as the one that was maximized. If the RadTileViewItem style is given a Key in the resource dictionary and used explicitly in the TileView's ItemContainerStyle property the scrolling works fine.
Both ways of using the style should, in my opinion, behave exactly the same.
Please take a look.
Initial state of TileView: A B C D E F G G is moved between B and E (current result) A B C D G F E REQUESTED RESULT: A B C D G F E
TileView: Add different methods for arranging Tile items. Asked by a client. For example "ColumnsOnly" would only shuffle items down within the column being inserted into. However this would also mean that gaps would have to be allowed. E.g. A B C D E F G If G moved between B and E then A B C D G F E
The values are switched. NewState holds the value of OldState. OldState holds the value of NewState
Allow users to dynamically change the DraggingItem
TextBox (or input control) is in LargeContent of FluidContentControl in RadTileViewItem. Validation fails and Red border is shown on the TextBox. TileState is changed then it is Maximized again. Validation fails again but no red border is shown.
Add GridSplitters between the columns and rows of the TileView so that rows and columns can be resized. GridSplitters should be available when the tiles are restored or Minimized/Maximized. In the latter case, only a vertical one should be available to resize the minimized tiles' width in respect to the maximized one.
Provide support for changing the ItemContainerStyleSelector runtime.
InvalidOperationException in thrown in design time in certain situations
The Header of the TileViewItems is bound only for the first X tiles, where X is the loadsize of the VirtualQueryableCollectionView
Implement command support for events like TileStateChanged. Allow sending the TileItem, which state is changing, as an argument.
Implement a mouse wheel support for the Horizontal ScrollBars of the control
Design time error occurs when setting MinimizedRowHeight
Add animations for items collection change (add/remove)