Click here to Skip to main content
Click here to Skip to main content

Silverlight Get REAL Visible Items in a Container (WrapPanel)

, 28 Sep 2010
Rate this:
Please Sign up or sign in to vote.
Using this you can animate or change states of the actually visible items
In my case I have to change the state of just a few elements that are visible or partially visible of a big list in a wrappanel and I cannot force to animate 100 items instead of 12. So here is a way to make this:
 
 <ScrollViewer x:Name="ScrollContainer"  >
      <toolkit:WrapPanel x:Name="WrappedButtons"/>
 </ScrollViewer>

and the c#
 
UIElement MyUIE = ScrollContainer;
GeneralTransform gt = MyUIE.TransformToVisual(Application.Current.RootVisual as UIElement);
Rect rect = new Rect(gt.Transform(new Point(0, 0)), MyUIE.RenderSize);
var foundElements = VisualTreeHelper.FindElementsInHostCoordinates(rect, MyUIE);
 
Type MyType = typeof(Button);
if (foundElements != null)
      {
        var listBoxItem = foundElements.Where(w => w.GetType().Equals(MyType)).ToList();
         TBResult.Text = listBoxItem != null ? listBoxItem.Count.ToString() : String.Empty;
      }
 
And that's all try it, It successfully works.
(Of course as many tips is a mix and changes of stuffs from the internet)

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Juan Pablo G.C.
Software Developer Expediteapps
Spain Spain
I'm Electronic Engineer, I did my end degree project at Astrophysical Institute and Tech Institute. I'm HP Procurve AIS and ASE ,Microsoft 3.5 MCTS
I live in Canary Islands ,developing customized solutions
 
I'm developing with WPF4, SL4 MVVM, MVC3 Razor and WP7 projects, more info at my websites. Improving with Android and IOS.
 
Web:
Expediteapps


Take a look to my blog Juan Pablo G.C.
Mareinsula

Comments and Discussions

 
-- There are no messages in this forum --
| Advertise | Privacy | Mobile
Web02 | 2.8.140709.1 | Last Updated 29 Sep 2010
Article Copyright 2010 by Juan Pablo G.C.
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid