/
VirtualizingStackPanel.xml
1950 lines (1857 loc) · 127 KB
/
VirtualizingStackPanel.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<Type Name="VirtualizingStackPanel" FullName="System.Windows.Controls.VirtualizingStackPanel">
<TypeSignature Language="C#" Value="public class VirtualizingStackPanel : System.Windows.Controls.VirtualizingPanel, System.Windows.Controls.Primitives.IScrollInfo" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi VirtualizingStackPanel extends System.Windows.Controls.VirtualizingPanel implements class System.Windows.Controls.Primitives.IScrollInfo" FrameworkAlternate="netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1" />
<TypeSignature Language="DocId" Value="T:System.Windows.Controls.VirtualizingStackPanel" />
<TypeSignature Language="VB.NET" Value="Public Class VirtualizingStackPanel
Inherits VirtualizingPanel
Implements IScrollInfo" />
<TypeSignature Language="F#" Value="type VirtualizingStackPanel = class
 inherit VirtualizingPanel
 interface IScrollInfo" />
<TypeSignature Language="C++ CLI" Value="public ref class VirtualizingStackPanel : System::Windows::Controls::VirtualizingPanel, System::Windows::Controls::Primitives::IScrollInfo" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit VirtualizingStackPanel extends System.Windows.Controls.VirtualizingPanel implements class System.Windows.Controls.Primitives.IScrollInfo" FrameworkAlternate="windowsdesktop-3.0;windowsdesktop-3.1;windowsdesktop-5.0;windowsdesktop-6.0;windowsdesktop-7.0;windowsdesktop-8.0;windowsdesktop-9.0" />
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Windows.Controls.VirtualizingPanel</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.Windows.Controls.Primitives.IScrollInfo</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<summary>Arranges and virtualizes content on a single line that is oriented either horizontally or vertically.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The standard layout system creates item containers and computes layout for each item associated with a list control. The word "virtualize" refers to a technique by which a subset of user interface (UI) elements are generated from a larger number of data items based on which items are visible on-screen. Generating many UI elements when only a few elements might be on the screen can adversely affect the performance of your application. The <xref:System.Windows.Controls.VirtualizingStackPanel> calculates the number of visible items and works with the <xref:System.Windows.Controls.ItemContainerGenerator> from an <xref:System.Windows.Controls.ItemsControl> (such as <xref:System.Windows.Controls.ListBox> or <xref:System.Windows.Controls.ListView>) to create UI elements only for visible items.
Virtualization in a <xref:System.Windows.Controls.StackPanel> only occurs when the items control contained in the panel creates its own item containers. You can ensure this happens by using data binding. In scenarios where item containers are created and added to the items control, a <xref:System.Windows.Controls.VirtualizingStackPanel> offers no performance advantage over a <xref:System.Windows.Controls.StackPanel>.
<xref:System.Windows.Controls.VirtualizingStackPanel> is the default items host for the <xref:System.Windows.Controls.ListBox> element. By default, the `VirtualizingStackPanel.IsVirtualizing` attached property is set to `true`.
When the `VirtualizingStackPanel.IsVirtualizing` attached property is set to `false`, a <xref:System.Windows.Controls.VirtualizingStackPanel> behaves the same as an ordinary <xref:System.Windows.Controls.StackPanel>.
## Examples
The following example shows how to bind to an XML data source and virtualize the items displayed in a <xref:System.Windows.Controls.ListBox> element using Extensible Application Markup Language (XAML). Notice that the `VirtualizingStackPanel.IsVirtualizing` attached property is explicitly set to `true`.
:::code language="xaml" source="~/snippets/csharp/System.Windows.Controls/VirtualizingPanel/Overview/default.xaml" id="Snippet2":::
The following example creates a <xref:System.Windows.Controls.ListBox> and sets the `VirtualizingStackPanel.VirtualizationMode` attached property to <xref:System.Windows.Controls.VirtualizationMode.Recycling>.
:::code language="xaml" source="~/snippets/csharp/System.Windows/HierarchicalDataTemplate/ItemContainerStyle/Window1.xaml" id="Snippetvirtualizationmode":::
The following example shows the data used in the previous example.
:::code language="csharp" source="~/snippets/csharp/System.Windows/HierarchicalDataTemplate/ItemContainerStyle/Window1.xaml.cs" id="Snippetlistboxdata":::
:::code language="vb" source="~/snippets/visualbasic/VS_Snippets_Wpf/RecycleItemContainerShippets/visualbasic/window1.xaml.vb" id="Snippetlistboxdata":::
]]></format>
</remarks>
<altmember cref="T:System.Windows.Controls.StackPanel" />
<altmember cref="T:System.Windows.Controls.ListBox" />
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public VirtualizingStackPanel ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.#ctor" />
<MemberSignature Language="VB.NET" Value="Public Sub New ()" />
<MemberSignature Language="C++ CLI" Value="public:
 VirtualizingStackPanel();" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName Language="C#">[System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]</AttributeName>
</Attribute>
</Attributes>
<Parameters />
<Docs>
<summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.VirtualizingStackPanel" /> class.</summary>
<remarks>To be added.</remarks>
<altmember cref="M:System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(System.Windows.Size)" />
</Docs>
</Member>
<Member MemberName="AddCleanUpVirtualizedItemHandler">
<MemberSignature Language="C#" Value="public static void AddCleanUpVirtualizedItemHandler (System.Windows.DependencyObject element, System.Windows.Controls.CleanUpVirtualizedItemEventHandler handler);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void AddCleanUpVirtualizedItemHandler(class System.Windows.DependencyObject element, class System.Windows.Controls.CleanUpVirtualizedItemEventHandler handler) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.AddCleanUpVirtualizedItemHandler(System.Windows.DependencyObject,System.Windows.Controls.CleanUpVirtualizedItemEventHandler)" />
<MemberSignature Language="VB.NET" Value="Public Shared Sub AddCleanUpVirtualizedItemHandler (element As DependencyObject, handler As CleanUpVirtualizedItemEventHandler)" />
<MemberSignature Language="F#" Value="static member AddCleanUpVirtualizedItemHandler : System.Windows.DependencyObject * System.Windows.Controls.CleanUpVirtualizedItemEventHandler -> unit" Usage="System.Windows.Controls.VirtualizingStackPanel.AddCleanUpVirtualizedItemHandler (element, handler)" />
<MemberSignature Language="C++ CLI" Value="public:
 static void AddCleanUpVirtualizedItemHandler(System::Windows::DependencyObject ^ element, System::Windows::Controls::CleanUpVirtualizedItemEventHandler ^ handler);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="element" Type="System.Windows.DependencyObject" />
<Parameter Name="handler" Type="System.Windows.Controls.CleanUpVirtualizedItemEventHandler" />
</Parameters>
<Docs>
<param name="element">The <see cref="T:System.Windows.DependencyObject" /> that is listening for this event.</param>
<param name="handler">The event handler that is to be added.</param>
<summary>Adds an event handler for the <see cref="E:System.Windows.Controls.VirtualizingStackPanel.CleanUpVirtualizedItem" /> attached event.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The standard layout system creates item containers and computes layout for each item associated with a list control. The word "virtualize" refers to a technique by which a subset of UI elements are generated from a larger number of data items based on which items are visible on-screen. Generating many UI elements when only a few elements might be on the screen can adversely affect the performance of your application. The <xref:System.Windows.Controls.VirtualizingStackPanel> calculates the number of visible items and works with the <xref:System.Windows.Controls.ItemContainerGenerator> from an <xref:System.Windows.Controls.ItemsControl> (such as <xref:System.Windows.Controls.ListBox> or <xref:System.Windows.Controls.ListView>) to create UI elements only for visible items.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="ArrangeOverride">
<MemberSignature Language="C#" Value="protected override System.Windows.Size ArrangeOverride (System.Windows.Size arrangeSize);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance valuetype System.Windows.Size ArrangeOverride(valuetype System.Windows.Size arrangeSize) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.ArrangeOverride(System.Windows.Size)" />
<MemberSignature Language="VB.NET" Value="Protected Overrides Function ArrangeOverride (arrangeSize As Size) As Size" />
<MemberSignature Language="F#" Value="override this.ArrangeOverride : System.Windows.Size -> System.Windows.Size" Usage="virtualizingStackPanel.ArrangeOverride arrangeSize" />
<MemberSignature Language="C++ CLI" Value="protected:
 override System::Windows::Size ArrangeOverride(System::Windows::Size arrangeSize);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Size</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="arrangeSize" Type="System.Windows.Size" />
</Parameters>
<Docs>
<param name="arrangeSize">The <see cref="T:System.Windows.Size" /> that this element should use to arrange its child elements.</param>
<summary>Arranges the content of a <see cref="T:System.Windows.Controls.VirtualizingStackPanel" /> element.</summary>
<returns>The <see cref="T:System.Windows.Size" /> that represents the arranged size of this <see cref="T:System.Windows.Controls.VirtualizingStackPanel" /> element and its child elements.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
You can override the <xref:System.Windows.Controls.VirtualizingStackPanel.ArrangeOverride%2A> and <xref:System.Windows.Controls.VirtualizingStackPanel.MeasureOverride%2A> methods in a derived class for custom layout behavior.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="BringIndexIntoView">
<MemberSignature Language="C#" Value="protected internal override void BringIndexIntoView (int index);" />
<MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig virtual instance void BringIndexIntoView(int32 index) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.BringIndexIntoView(System.Int32)" />
<MemberSignature Language="VB.NET" Value="Protected Friend Overrides Sub BringIndexIntoView (index As Integer)" />
<MemberSignature Language="F#" Value="override this.BringIndexIntoView : int -> unit" Usage="virtualizingStackPanel.BringIndexIntoView index" />
<MemberSignature Language="C++ CLI" Value="protected public:
 override void BringIndexIntoView(int index);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="index" Type="System.Int32" />
</Parameters>
<Docs>
<param name="index">The position of the item to generate and make visible.</param>
<summary>Generates the item at the specified index position and brings it into view.</summary>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="index" /> position does not exist in the child collection.</exception>
</Docs>
</Member>
<Member MemberName="CanHierarchicallyScrollAndVirtualizeCore">
<MemberSignature Language="C#" Value="protected override bool CanHierarchicallyScrollAndVirtualizeCore { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool CanHierarchicallyScrollAndVirtualizeCore" />
<MemberSignature Language="DocId" Value="P:System.Windows.Controls.VirtualizingStackPanel.CanHierarchicallyScrollAndVirtualizeCore" />
<MemberSignature Language="VB.NET" Value="Protected Overrides ReadOnly Property CanHierarchicallyScrollAndVirtualizeCore As Boolean" />
<MemberSignature Language="F#" Value="member this.CanHierarchicallyScrollAndVirtualizeCore : bool" Usage="System.Windows.Controls.VirtualizingStackPanel.CanHierarchicallyScrollAndVirtualizeCore" />
<MemberSignature Language="C++ CLI" Value="protected:
 virtual property bool CanHierarchicallyScrollAndVirtualizeCore { bool get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets value that indicates whether the <see cref="T:System.Windows.Controls.VirtualizingStackPanel" /> can virtualize items that are grouped or organized in a hierarchy.</summary>
<value>
<see langword="true" /> in all cases.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="CanHorizontallyScroll">
<MemberSignature Language="C#" Value="public bool CanHorizontallyScroll { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool CanHorizontallyScroll" />
<MemberSignature Language="DocId" Value="P:System.Windows.Controls.VirtualizingStackPanel.CanHorizontallyScroll" />
<MemberSignature Language="VB.NET" Value="Public Property CanHorizontallyScroll As Boolean" />
<MemberSignature Language="F#" Value="member this.CanHorizontallyScroll : bool with get, set" Usage="System.Windows.Controls.VirtualizingStackPanel.CanHorizontallyScroll" />
<MemberSignature Language="C++ CLI" Value="public:
 property bool CanHorizontallyScroll { bool get(); void set(bool value); };" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Windows.Controls.Primitives.IScrollInfo.CanHorizontallyScroll</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName Language="C#">[System.ComponentModel.DefaultValue(false)]</AttributeName>
<AttributeName Language="F#">[<System.ComponentModel.DefaultValue(false)>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets a value that indicates whether a <see cref="T:System.Windows.Controls.VirtualizingStackPanel" /> can scroll in the horizontal dimension.</summary>
<value>
<see langword="true" /> if content can scroll in the horizontal dimension; otherwise, <see langword="false" />. The default is <see langword="false" />.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="CanVerticallyScroll">
<MemberSignature Language="C#" Value="public bool CanVerticallyScroll { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool CanVerticallyScroll" />
<MemberSignature Language="DocId" Value="P:System.Windows.Controls.VirtualizingStackPanel.CanVerticallyScroll" />
<MemberSignature Language="VB.NET" Value="Public Property CanVerticallyScroll As Boolean" />
<MemberSignature Language="F#" Value="member this.CanVerticallyScroll : bool with get, set" Usage="System.Windows.Controls.VirtualizingStackPanel.CanVerticallyScroll" />
<MemberSignature Language="C++ CLI" Value="public:
 property bool CanVerticallyScroll { bool get(); void set(bool value); };" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Windows.Controls.Primitives.IScrollInfo.CanVerticallyScroll</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName Language="C#">[System.ComponentModel.DefaultValue(false)]</AttributeName>
<AttributeName Language="F#">[<System.ComponentModel.DefaultValue(false)>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets a value that indicates whether content can scroll in the vertical dimension.</summary>
<value>
<see langword="true" /> if content can scroll in the vertical dimension; otherwise, <see langword="false" />. The default is <see langword="false" />.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="CleanUpVirtualizedItem">
<MemberSignature Language="C#" Value="see AddCleanUpVirtualizedItemHandler, and RemoveCleanUpVirtualizedItemHandler" />
<MemberSignature Language="ILAsm" Value="see AddCleanUpVirtualizedItemHandler, and RemoveCleanUpVirtualizedItemHandler" />
<MemberSignature Language="DocId" Value="E:System.Windows.Controls.VirtualizingStackPanel.CleanUpVirtualizedItem" />
<MemberSignature Language="VB.NET" Value="see AddCleanUpVirtualizedItemHandler, and RemoveCleanUpVirtualizedItemHandler" />
<MemberSignature Language="F#" Value="see AddCleanUpVirtualizedItemHandler, and RemoveCleanUpVirtualizedItemHandler" Usage="see AddCleanUpVirtualizedItemHandler, and RemoveCleanUpVirtualizedItemHandler" />
<MemberType>AttachedEvent</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Docs>
<summary>Occurs when an item is being re-virtualized by the <see cref="T:System.Windows.Controls.ItemsControl" /> that is associated with this instance of <see cref="T:System.Windows.Controls.VirtualizingStackPanel" />.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
<a name="routedEventInfo_CleanUpVirtualizedItem"></a>
## Routed Event Information
|||
|-|-|
|Identifier field|<xref:System.Windows.Controls.VirtualizingStackPanel.CleanUpVirtualizedItemEvent>|
|Routing strategy|Direct|
|Delegate|<xref:System.Windows.Controls.CleanUpVirtualizedItemEventHandler>|
]]></format>
</remarks>
<altmember cref="F:System.Windows.Controls.VirtualizingStackPanel.CleanUpVirtualizedItemEvent" />
</Docs>
</Member>
<Member MemberName="CleanUpVirtualizedItemEvent">
<MemberSignature Language="C#" Value="public static readonly System.Windows.RoutedEvent CleanUpVirtualizedItemEvent;" />
<MemberSignature Language="ILAsm" Value=".field public static initonly class System.Windows.RoutedEvent CleanUpVirtualizedItemEvent" />
<MemberSignature Language="DocId" Value="F:System.Windows.Controls.VirtualizingStackPanel.CleanUpVirtualizedItemEvent" />
<MemberSignature Language="VB.NET" Value="Public Shared ReadOnly CleanUpVirtualizedItemEvent As RoutedEvent " />
<MemberSignature Language="F#" Value=" staticval mutable CleanUpVirtualizedItemEvent : System.Windows.RoutedEvent" Usage="System.Windows.Controls.VirtualizingStackPanel.CleanUpVirtualizedItemEvent" />
<MemberSignature Language="C++ CLI" Value="public: static initonly System::Windows::RoutedEvent ^ CleanUpVirtualizedItemEvent;" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.RoutedEvent</ReturnType>
</ReturnValue>
<Docs>
<summary>Identifies the <see cref="E:System.Windows.Controls.VirtualizingStackPanel.CleanUpVirtualizedItem" /> attached event.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="ExtentHeight">
<MemberSignature Language="C#" Value="public double ExtentHeight { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance float64 ExtentHeight" />
<MemberSignature Language="DocId" Value="P:System.Windows.Controls.VirtualizingStackPanel.ExtentHeight" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property ExtentHeight As Double" />
<MemberSignature Language="F#" Value="member this.ExtentHeight : double" Usage="System.Windows.Controls.VirtualizingStackPanel.ExtentHeight" />
<MemberSignature Language="C++ CLI" Value="public:
 property double ExtentHeight { double get(); };" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Windows.Controls.Primitives.IScrollInfo.ExtentHeight</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Double</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a value that contains the vertical size of the extent.</summary>
<value>A <see cref="T:System.Double" /> that represents the vertical size of the extent. The default is 0.0.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="ExtentWidth">
<MemberSignature Language="C#" Value="public double ExtentWidth { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance float64 ExtentWidth" />
<MemberSignature Language="DocId" Value="P:System.Windows.Controls.VirtualizingStackPanel.ExtentWidth" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property ExtentWidth As Double" />
<MemberSignature Language="F#" Value="member this.ExtentWidth : double" Usage="System.Windows.Controls.VirtualizingStackPanel.ExtentWidth" />
<MemberSignature Language="C++ CLI" Value="public:
 property double ExtentWidth { double get(); };" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Windows.Controls.Primitives.IScrollInfo.ExtentWidth</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Double</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a value that contains the horizontal size of the extent.</summary>
<value>A <see cref="T:System.Double" /> that represents the horizontal size of the extent. The default is 0.0.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetIsVirtualizing">
<MemberSignature Language="C#" Value="public static bool GetIsVirtualizing (System.Windows.DependencyObject o);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig bool GetIsVirtualizing(class System.Windows.DependencyObject o) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.GetIsVirtualizing(System.Windows.DependencyObject)" />
<MemberSignature Language="VB.NET" Value="Public Shared Function GetIsVirtualizing (o As DependencyObject) As Boolean" />
<MemberSignature Language="F#" Value="static member GetIsVirtualizing : System.Windows.DependencyObject -> bool" Usage="System.Windows.Controls.VirtualizingStackPanel.GetIsVirtualizing o" />
<MemberSignature Language="C++ CLI" Value="public:
 static bool GetIsVirtualizing(System::Windows::DependencyObject ^ o);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="o" Type="System.Windows.DependencyObject" Index="0" FrameworkAlternate="netframework-3.0;netframework-3.5;netframework-4.0" />
</Parameters>
<Docs>
<param name="o">The object from which the attached property value is read.</param>
<summary>Gets the value of the <see cref="P:System.Windows.Controls.VirtualizingStackPanel.IsVirtualizing" /> attached property.</summary>
<returns>
<see langword="true" /> if the <see cref="T:System.Windows.Controls.VirtualizingStackPanel" /> is virtualizing its content; otherwise, <see langword="false" />.</returns>
<returns>
<see langword="true" /> if the element is not on the screen; otherwise, <see langword="false" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The default value of the <xref:System.Windows.Controls.VirtualizingStackPanel.IsVirtualizing> property is `true`.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="GetItemOffsetCore">
<MemberSignature Language="C#" Value="protected override double GetItemOffsetCore (System.Windows.UIElement child);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance float64 GetItemOffsetCore(class System.Windows.UIElement child) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.GetItemOffsetCore(System.Windows.UIElement)" />
<MemberSignature Language="VB.NET" Value="Protected Overrides Function GetItemOffsetCore (child As UIElement) As Double" />
<MemberSignature Language="F#" Value="override this.GetItemOffsetCore : System.Windows.UIElement -> double" Usage="virtualizingStackPanel.GetItemOffsetCore child" />
<MemberSignature Language="C++ CLI" Value="protected:
 override double GetItemOffsetCore(System::Windows::UIElement ^ child);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Double</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="child" Type="System.Windows.UIElement" Index="0" FrameworkAlternate="net-5.0;net-6.0;netcore-3.0;netcore-3.1;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;windowsdesktop-3.0;windowsdesktop-3.1;windowsdesktop-5.0;windowsdesktop-6.0;windowsdesktop-7.0;netframework-4.8.1;windowsdesktop-8.0;windowsdesktop-9.0" />
</Parameters>
<Docs>
<param name="child">The element whose position to find.</param>
<summary>Returns the position of the specified item, relative to the <see cref="T:System.Windows.Controls.VirtualizingStackPanel" />.</summary>
<returns>The position of the specified item, relative to the <see cref="T:System.Windows.Controls.VirtualizingStackPanel" />.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetVirtualizationMode">
<MemberSignature Language="C#" Value="public static System.Windows.Controls.VirtualizationMode GetVirtualizationMode (System.Windows.DependencyObject element);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Windows.Controls.VirtualizationMode GetVirtualizationMode(class System.Windows.DependencyObject element) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.GetVirtualizationMode(System.Windows.DependencyObject)" />
<MemberSignature Language="VB.NET" Value="Public Shared Function GetVirtualizationMode (element As DependencyObject) As VirtualizationMode" />
<MemberSignature Language="F#" Value="static member GetVirtualizationMode : System.Windows.DependencyObject -> System.Windows.Controls.VirtualizationMode" Usage="System.Windows.Controls.VirtualizingStackPanel.GetVirtualizationMode element" />
<MemberSignature Language="C++ CLI" Value="public:
 static System::Windows::Controls::VirtualizationMode GetVirtualizationMode(System::Windows::DependencyObject ^ element);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Controls.VirtualizationMode</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="element" Type="System.Windows.DependencyObject" Index="0" FrameworkAlternate="netframework-3.0;netframework-3.5;netframework-4.0" />
</Parameters>
<Docs>
<param name="element">The object from which the <see cref="P:System.Windows.Controls.VirtualizingStackPanel.VirtualizationMode" /> property is read.</param>
<summary>Returns the <see cref="P:System.Windows.Controls.VirtualizingStackPanel.VirtualizationMode" /> attached property for the specified object.</summary>
<returns>One of the enumeration values that specifies whether the object uses container recycling.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="HasLogicalOrientation">
<MemberSignature Language="C#" Value="protected internal override bool HasLogicalOrientation { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool HasLogicalOrientation" />
<MemberSignature Language="DocId" Value="P:System.Windows.Controls.VirtualizingStackPanel.HasLogicalOrientation" />
<MemberSignature Language="VB.NET" Value="Protected Friend Overrides ReadOnly Property HasLogicalOrientation As Boolean" />
<MemberSignature Language="F#" Value="member this.HasLogicalOrientation : bool" Usage="System.Windows.Controls.VirtualizingStackPanel.HasLogicalOrientation" />
<MemberSignature Language="C++ CLI" Value="protected public:
 virtual property bool HasLogicalOrientation { bool get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a value that indicates if this <see cref="T:System.Windows.Controls.VirtualizingStackPanel" /> has a vertical or horizontal orientation.</summary>
<value>This property always returns <see langword="true" />.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This property always returns `true` because a <xref:System.Windows.Controls.VirtualizingStackPanel> must have either a vertical or horizontal orientation.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="HorizontalOffset">
<MemberSignature Language="C#" Value="public double HorizontalOffset { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance float64 HorizontalOffset" />
<MemberSignature Language="DocId" Value="P:System.Windows.Controls.VirtualizingStackPanel.HorizontalOffset" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property HorizontalOffset As Double" />
<MemberSignature Language="F#" Value="member this.HorizontalOffset : double" Usage="System.Windows.Controls.VirtualizingStackPanel.HorizontalOffset" />
<MemberSignature Language="C++ CLI" Value="public:
 property double HorizontalOffset { double get(); };" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Windows.Controls.Primitives.IScrollInfo.HorizontalOffset</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName Language="C#">[System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)]</AttributeName>
<AttributeName Language="F#">[<System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Double</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a value that contains the horizontal offset of the scrolled content.</summary>
<value>
<see cref="T:System.Double" /> that represents the horizontal offset of the scrolled content. The default is 0.0.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="IsVirtualizing">
<MemberSignature Language="C#" Value="see GetIsVirtualizing, and SetIsVirtualizing" />
<MemberSignature Language="ILAsm" Value="see GetIsVirtualizing, and SetIsVirtualizing" />
<MemberSignature Language="DocId" Value="P:System.Windows.Controls.VirtualizingStackPanel.IsVirtualizing" />
<MemberSignature Language="VB.NET" Value="see GetIsVirtualizing, and SetIsVirtualizing" />
<MemberSignature Language="F#" Value="see GetIsVirtualizing, and SetIsVirtualizing" Usage="see GetIsVirtualizing, and SetIsVirtualizing" />
<MemberType>AttachedProperty</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Docs>
<summary>Gets or sets a value that indicates that this <see cref="T:System.Windows.Controls.VirtualizingStackPanel" /> is virtualizing its child collection.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The standard layout system creates item containers and computes layout for each item associated with a list control.
The word "virtualize" refers to a technique by which a subset of UI elements are generated from a larger number of data items based on which items are visible on-screen.
Generating many UI elements when only a few elements might be on the screen can adversely affect the performance of your application.
The <xref:System.Windows.Controls.VirtualizingStackPanel> calculates the number of visible items and works with the <xref:System.Windows.Controls.ItemContainerGenerator> from an <xref:System.Windows.Controls.ItemsControl>
(such as <xref:System.Windows.Controls.ListBox> or <xref:System.Windows.Controls.ListView>) to create UI elements only for visible items.
## Dependency Property Information
|Identifier field|IsVirtualizingProperty|
|Metadata properties set to `true`|None|
## Examples
The following example shows how to bind to an XML data source and virtualize the items displayed in a <xref:System.Windows.Controls.ListBox> element by using XAML.
Notice that the IsVirtualizing attached property is explicitly set to `true`.
```xaml
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowTitle="VirtualizingStackPanel Sample"
Height="150"
VerticalAlignment="Top">
<Page.Resources>
<XmlDataProvider x:Key="Leagues" Source="Leagues.xml" XPath="Leagues/League"/>
<DataTemplate x:Key="NameDataStyle">
<TextBlock Text="{Binding XPath=@name}" FontFamily="Arial" FontSize="12" Foreground="Black"/>
</DataTemplate>
</Page.Resources>
<Border HorizontalAlignment="Left"
VerticalAlignment="Top"
BorderBrush="Black"
BorderThickness="2">
<ScrollViewer>
<StackPanel DataContext="{Binding Source={StaticResource Leagues}}">
<TextBlock Text="{Binding XPath=@name}" FontFamily="Arial" FontSize="18" Foreground="Black"/>
<ListBox VirtualizingStackPanel.IsVirtualizing="True"
ItemsSource="{Binding XPath=Team}"
ItemTemplate="{DynamicResource NameDataStyle}"/>
</StackPanel>
</ScrollViewer>
</Border>
</Page>
```
]]></format>
</remarks>
<related type="Article" href="/dotnet/framework/wpf/advanced/attached-properties-overview">Attached Properties Overview</related>
</Docs>
</Member>
<Member MemberName="IsVirtualizingProperty">
<MemberSignature Language="C#" Value="public static readonly System.Windows.DependencyProperty IsVirtualizingProperty;" />
<MemberSignature Language="ILAsm" Value=".field public static initonly class System.Windows.DependencyProperty IsVirtualizingProperty" />
<MemberSignature Language="DocId" Value="F:System.Windows.Controls.VirtualizingStackPanel.IsVirtualizingProperty" />
<MemberSignature Language="VB.NET" Value="Public Shared ReadOnly IsVirtualizingProperty As DependencyProperty " />
<MemberSignature Language="F#" Value=" staticval mutable IsVirtualizingProperty : System.Windows.DependencyProperty" Usage="System.Windows.Controls.VirtualizingStackPanel.IsVirtualizingProperty" />
<MemberSignature Language="C++ CLI" Value="public: static initonly System::Windows::DependencyProperty ^ IsVirtualizingProperty;" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.DependencyProperty</ReturnType>
</ReturnValue>
<Docs>
<summary>Identifies the <see langword="VirtualizingPanel.IsVirtualizing" /> attached property.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="LineDown">
<MemberSignature Language="C#" Value="public virtual void LineDown ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void LineDown() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.LineDown" />
<MemberSignature Language="VB.NET" Value="Public Overridable Sub LineDown ()" />
<MemberSignature Language="F#" Value="abstract member LineDown : unit -> unit
override this.LineDown : unit -> unit" Usage="virtualizingStackPanel.LineDown " />
<MemberSignature Language="C++ CLI" Value="public:
 virtual void LineDown();" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Windows.Controls.Primitives.IScrollInfo.LineDown</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Scrolls content downward by one logical unit.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
You can override this method in a derived class to change how the stack panel scrolls content downward. For example, you can scroll content down by two units instead of one.
If you require physical scrolling instead of logical scrolling, wrap the <xref:System.Windows.Controls.VirtualizingStackPanel> in a <xref:System.Windows.Controls.ScrollViewer> and set its <xref:System.Windows.Controls.ScrollViewer.CanContentScroll%2A> property to `false`. In this case, the <xref:System.Windows.Controls.ScrollViewer> provides scrolling, and virtualization is disabled.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="LineLeft">
<MemberSignature Language="C#" Value="public virtual void LineLeft ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void LineLeft() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.LineLeft" />
<MemberSignature Language="VB.NET" Value="Public Overridable Sub LineLeft ()" />
<MemberSignature Language="F#" Value="abstract member LineLeft : unit -> unit
override this.LineLeft : unit -> unit" Usage="virtualizingStackPanel.LineLeft " />
<MemberSignature Language="C++ CLI" Value="public:
 virtual void LineLeft();" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Windows.Controls.Primitives.IScrollInfo.LineLeft</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Scrolls content to the left by one logical unit.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
You can override this method in a derived class to change how the stack panel scrolls content downward. For example, you can scroll content down by two units instead of one.
If you require physical scrolling instead of logical scrolling, wrap the <xref:System.Windows.Controls.VirtualizingStackPanel> in a <xref:System.Windows.Controls.ScrollViewer> and set its <xref:System.Windows.Controls.ScrollViewer.CanContentScroll%2A> property to `false`. In this case, the <xref:System.Windows.Controls.ScrollViewer> provides scrolling, and virtualization is disabled.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="LineRight">
<MemberSignature Language="C#" Value="public virtual void LineRight ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void LineRight() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.LineRight" />
<MemberSignature Language="VB.NET" Value="Public Overridable Sub LineRight ()" />
<MemberSignature Language="F#" Value="abstract member LineRight : unit -> unit
override this.LineRight : unit -> unit" Usage="virtualizingStackPanel.LineRight " />
<MemberSignature Language="C++ CLI" Value="public:
 virtual void LineRight();" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Windows.Controls.Primitives.IScrollInfo.LineRight</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Scrolls content to the right by one logical unit.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
You can override this method in a derived class to change how the stack panel scrolls content to the right. For example, you can scroll content right by two units instead of one.
If you require physical scrolling instead of logical scrolling, wrap the <xref:System.Windows.Controls.VirtualizingStackPanel> in a <xref:System.Windows.Controls.ScrollViewer> and set its <xref:System.Windows.Controls.ScrollViewer.CanContentScroll%2A> property to `false`. In this case, the <xref:System.Windows.Controls.ScrollViewer> provides scrolling, and virtualization is disabled.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="LineUp">
<MemberSignature Language="C#" Value="public virtual void LineUp ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void LineUp() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.LineUp" />
<MemberSignature Language="VB.NET" Value="Public Overridable Sub LineUp ()" />
<MemberSignature Language="F#" Value="abstract member LineUp : unit -> unit
override this.LineUp : unit -> unit" Usage="virtualizingStackPanel.LineUp " />
<MemberSignature Language="C++ CLI" Value="public:
 virtual void LineUp();" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Windows.Controls.Primitives.IScrollInfo.LineUp</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Scrolls content upward by one logical unit.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
You can override this method in a derived class to change how the stack panel scrolls content upward. For example, you can scroll up two units instead of one.
If you require physical scrolling instead of logical scrolling, wrap the <xref:System.Windows.Controls.VirtualizingStackPanel> in a <xref:System.Windows.Controls.ScrollViewer> and set its <xref:System.Windows.Controls.ScrollViewer.CanContentScroll%2A> property to `false`. In this case, the <xref:System.Windows.Controls.ScrollViewer> provides scrolling, and virtualization is disabled.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="LogicalOrientation">
<MemberSignature Language="C#" Value="protected internal override System.Windows.Controls.Orientation LogicalOrientation { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.Windows.Controls.Orientation LogicalOrientation" />
<MemberSignature Language="DocId" Value="P:System.Windows.Controls.VirtualizingStackPanel.LogicalOrientation" />
<MemberSignature Language="VB.NET" Value="Protected Friend Overrides ReadOnly Property LogicalOrientation As Orientation" />
<MemberSignature Language="F#" Value="member this.LogicalOrientation : System.Windows.Controls.Orientation" Usage="System.Windows.Controls.VirtualizingStackPanel.LogicalOrientation" />
<MemberSignature Language="C++ CLI" Value="protected public:
 virtual property System::Windows::Controls::Orientation LogicalOrientation { System::Windows::Controls::Orientation get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName Language="C#">[get: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]</AttributeName>
<AttributeName Language="F#">[<get: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Windows.Controls.Orientation</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a value that represents the <see cref="T:System.Windows.Controls.Orientation" /> of the <see cref="T:System.Windows.Controls.VirtualizingStackPanel" />.</summary>
<value>An <see cref="T:System.Windows.Controls.Orientation" /> value.</value>
<remarks>To be added.</remarks>
<altmember cref="T:System.Windows.Controls.Orientation" />
</Docs>
</Member>
<Member MemberName="MakeVisible">
<MemberSignature Language="C#" Value="public System.Windows.Rect MakeVisible (System.Windows.Media.Visual visual, System.Windows.Rect rectangle);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype System.Windows.Rect MakeVisible(class System.Windows.Media.Visual visual, valuetype System.Windows.Rect rectangle) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.MakeVisible(System.Windows.Media.Visual,System.Windows.Rect)" />
<MemberSignature Language="VB.NET" Value="Public Function MakeVisible (visual As Visual, rectangle As Rect) As Rect" />
<MemberSignature Language="F#" Value="abstract member MakeVisible : System.Windows.Media.Visual * System.Windows.Rect -> System.Windows.Rect
override this.MakeVisible : System.Windows.Media.Visual * System.Windows.Rect -> System.Windows.Rect" Usage="virtualizingStackPanel.MakeVisible (visual, rectangle)" />
<MemberSignature Language="C++ CLI" Value="public:
 virtual System::Windows::Rect MakeVisible(System::Windows::Media::Visual ^ visual, System::Windows::Rect rectangle);" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Windows.Controls.Primitives.IScrollInfo.MakeVisible(System.Windows.Media.Visual,System.Windows.Rect)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Rect</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="visual" Type="System.Windows.Media.Visual" />
<Parameter Name="rectangle" Type="System.Windows.Rect" />
</Parameters>
<Docs>
<param name="visual">The <see cref="T:System.Windows.Media.Visual" /> that becomes visible.</param>
<param name="rectangle">A <see cref="T:System.Windows.Rect" /> that represents the coordinate space within a <see cref="T:System.Windows.Media.Visual" />.</param>
<summary>Scrolls to the specified coordinates and makes that portion of a <see cref="T:System.Windows.Media.Visual" /> visible.</summary>
<returns>A <see cref="T:System.Windows.Rect" /> that is visible.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="MeasureOverride">
<MemberSignature Language="C#" Value="protected override System.Windows.Size MeasureOverride (System.Windows.Size constraint);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance valuetype System.Windows.Size MeasureOverride(valuetype System.Windows.Size constraint) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(System.Windows.Size)" />
<MemberSignature Language="VB.NET" Value="Protected Overrides Function MeasureOverride (constraint As Size) As Size" />
<MemberSignature Language="F#" Value="override this.MeasureOverride : System.Windows.Size -> System.Windows.Size" Usage="virtualizingStackPanel.MeasureOverride constraint" />
<MemberSignature Language="C++ CLI" Value="protected:
 override System::Windows::Size MeasureOverride(System::Windows::Size constraint);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Size</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="constraint" Type="System.Windows.Size" />
</Parameters>
<Docs>
<param name="constraint">An upper limit <see cref="T:System.Windows.Size" /> that should not be exceeded.</param>
<summary>Measures the child elements of a <see cref="T:System.Windows.Controls.VirtualizingStackPanel" /> in anticipation of arranging them during the <see cref="M:System.Windows.Controls.VirtualizingStackPanel.ArrangeOverride(System.Windows.Size)" /> pass.</summary>
<returns>The <see cref="T:System.Windows.Size" /> that represents the desired size of the element.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
When scrolling, <xref:System.Windows.Controls.VirtualizingStackPanel> does not grow in layout size, but effectively adds its descendants on a z-plane, which is normally clipped by a parent element (typically a <xref:System.Windows.Controls.ScrollContentPresenter>) to the size of the stack.
]]></format>
</remarks>
<altmember cref="M:System.Windows.Controls.VirtualizingStackPanel.ArrangeOverride(System.Windows.Size)" />
</Docs>
</Member>
<Member MemberName="MouseWheelDown">
<MemberSignature Language="C#" Value="public virtual void MouseWheelDown ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void MouseWheelDown() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.MouseWheelDown" />
<MemberSignature Language="VB.NET" Value="Public Overridable Sub MouseWheelDown ()" />
<MemberSignature Language="F#" Value="abstract member MouseWheelDown : unit -> unit
override this.MouseWheelDown : unit -> unit" Usage="virtualizingStackPanel.MouseWheelDown " />
<MemberSignature Language="C++ CLI" Value="public:
 virtual void MouseWheelDown();" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Windows.Controls.Primitives.IScrollInfo.MouseWheelDown</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>PresentationFramework</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Scrolls content logically downward in response to a downward click of the mouse wheel button.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
You can override <xref:System.Windows.Controls.VirtualizingStackPanel.MouseWheelDown%2A> in a derived class to change how the stack panel responds to the mouse wheel down action.
If you require physical scrolling instead of logical scrolling, wrap the <xref:System.Windows.Controls.VirtualizingStackPanel> in a <xref:System.Windows.Controls.ScrollViewer> and set its <xref:System.Windows.Controls.ScrollViewer.CanContentScroll%2A> property to `false`. In this case, the <xref:System.Windows.Controls.ScrollViewer> provides scrolling, and virtualization is disabled.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="MouseWheelLeft">
<MemberSignature Language="C#" Value="public virtual void MouseWheelLeft ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void MouseWheelLeft() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Controls.VirtualizingStackPanel.MouseWheelLeft" />
<MemberSignature Language="VB.NET" Value="Public Overridable Sub MouseWheelLeft ()" />
<MemberSignature Language="F#" Value="abstract member MouseWheelLeft : unit -> unit
override this.MouseWheelLeft : unit -> unit" Usage="virtualizingStackPanel.MouseWheelLeft " />
<MemberSignature Language="C++ CLI" Value="public:
 virtual void MouseWheelLeft();" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Windows.Controls.Primitives.IScrollInfo.MouseWheelLeft</InterfaceMember>
</Implements>
<AssemblyInfo>