@@ -149,7 +149,8 @@ private static void ItemCornerRadiusOnContainerContentChanging(ListViewBase send
149
149
var presenter = args . ItemContainer . FindDescendant < ListViewItemPresenter > ( ) ;
150
150
if ( presenter != null )
151
151
{
152
- presenter . CornerRadius = GetItemCornerRadius ( sender ) ;
152
+ var cornerRadius = GetItemCornerRadius ( sender ) ;
153
+ presenter . CornerRadius = cornerRadius ;
153
154
}
154
155
}
155
156
@@ -171,12 +172,13 @@ private static void OnItemMarginPropertyChanged(DependencyObject sender, Depende
171
172
private static void ItemMarginOnContainerContentChanging ( ListViewBase sender , ContainerContentChangingEventArgs args )
172
173
{
173
174
if ( args . Phase > 0 || args . InRecycleQueue ) return ;
175
+ var margin = GetItemMargin ( sender ) ;
174
176
if ( ! IsApiContract13Present )
175
177
{
176
178
// Due to the absence of a Border element in the Windows 10 ListViewItem,
177
179
// margin must be set at the container level. This introduces an inactive
178
180
// hit-test region around the visual bounds of the item.
179
- args . ItemContainer . Margin = GetItemMargin ( sender ) ;
181
+ args . ItemContainer . Margin = margin ;
180
182
}
181
183
else
182
184
{
@@ -207,7 +209,7 @@ private static void ItemMarginOnContainerContentChanging(ListViewBase sender, Co
207
209
var border = args . ItemContainer . FindDescendant < Border > ( ) ;
208
210
if ( border != null )
209
211
{
210
- border . Margin = GetItemMargin ( sender ) ;
212
+ border . Margin = margin ;
211
213
}
212
214
}
213
215
}
@@ -230,18 +232,19 @@ private static void OnItemMinHeightPropertyChanged(DependencyObject sender, Depe
230
232
private static void ItemMinHeightOnContainerContentChanging ( ListViewBase sender , ContainerContentChangingEventArgs args )
231
233
{
232
234
if ( args . Phase > 0 || args . InRecycleQueue ) return ;
235
+ var minHeight = GetItemMinHeight ( sender ) ;
233
236
if ( ! IsApiContract13Present && ItemMarginProperty != null )
234
237
{
235
238
var margin = GetItemMargin ( sender ) ;
236
239
double offsetMargin = margin . Top + margin . Bottom ;
237
240
238
241
// If a margin is applied to the container, we have to subtract the vertical values
239
242
// from the minimum height to ensure it matches the Windows 11 ListViewItem dimensions.
240
- args . ItemContainer . MinHeight = GetItemMinHeight ( sender ) - offsetMargin ;
243
+ args . ItemContainer . MinHeight = minHeight - offsetMargin ;
241
244
}
242
245
else
243
246
{
244
- args . ItemContainer . MinHeight = GetItemMinHeight ( sender ) ;
247
+ args . ItemContainer . MinHeight = minHeight ;
245
248
}
246
249
}
247
250
0 commit comments