Существует небольшое различие: Calloc может решить обнулить память только, поскольку он необходим и затем существует преимущество знания размера элементов.
я не могу назвать реализации, делающие это, но об этом думали для этого.
Как пример:
callocates 4 ГБ памяти, но система имеет только 2 ГБ: не имело бы смысла писать 2 ГБ нуля в виртуальную память, поэтому система могла установить грязный флаг на этой памяти для обнуления его, поскольку это загружается в память.
Попробуйте добавить это к своим ресурсам окна -
<Window.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Red" />
</Window.Resources>
И удалите триггер IsSelected из вашего кода, он не будет работать, потому что каждая система имеет свою кисть выделения по умолчанию в зависимости от вашей системной темы.
Вам нужно переопределить кисть выделения в вашем коде, чтобы она работала.