See the below picture:
I just used Performance Profiler in VS2017 and i found that the listBoxItem's ContentPresenter render time is so bigger than its children's.
I have to reduce total render time (which is 1.1s roughly). Sum of ListBoxItems render time is also 1.1s.
I don't know why time difference is made.
The Listbox's visual tree is like this:
- ListBox(3057)
- Border(3056)
- ScollViewer(3055)
- Grid(3054)
- ScrollContentPresenter(3031)
- ItemsPresenter(3029)
- VirtualizingStackPanel(3028)
- ListBoxItem(120)
- ListBoxItem(84) ...
- VirtualizingStackPanel(3028)
- ItemsPresenter(3029)
- ScrollContentPresenter(3031)
- Grid(3054)
- ScollViewer(3055)
- Border(3056)

I can reduce visual tree's Control.
The way that i do is "redefine some Control's ControlTemplate"
Before redefine ControlTemplate, my ListBoxItem have Bd(Border), ContentPresenter, Grid,, etc. like below
After redefine ControlTemplate like below xaml
Then i can remove "Bd"(Border) like below.
To reduce render time, I will find useless Controls and remove.