Skip to content

Commit 2eccbb5

Browse files
committed
store dependency properties values
1 parent dcee180 commit 2eccbb5

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

Screenbox/Extensions/ListViewExtensions.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,8 @@ private static void ItemCornerRadiusOnContainerContentChanging(ListViewBase send
149149
var presenter = args.ItemContainer.FindDescendant<ListViewItemPresenter>();
150150
if (presenter != null)
151151
{
152-
presenter.CornerRadius = GetItemCornerRadius(sender);
152+
var cornerRadius = GetItemCornerRadius(sender);
153+
presenter.CornerRadius = cornerRadius;
153154
}
154155
}
155156

@@ -171,12 +172,13 @@ private static void OnItemMarginPropertyChanged(DependencyObject sender, Depende
171172
private static void ItemMarginOnContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)
172173
{
173174
if (args.Phase > 0 || args.InRecycleQueue) return;
175+
var margin = GetItemMargin(sender);
174176
if (!IsApiContract13Present)
175177
{
176178
// Due to the absence of a Border element in the Windows 10 ListViewItem,
177179
// margin must be set at the container level. This introduces an inactive
178180
// hit-test region around the visual bounds of the item.
179-
args.ItemContainer.Margin = GetItemMargin(sender);
181+
args.ItemContainer.Margin = margin;
180182
}
181183
else
182184
{
@@ -207,7 +209,7 @@ private static void ItemMarginOnContainerContentChanging(ListViewBase sender, Co
207209
var border = args.ItemContainer.FindDescendant<Border>();
208210
if (border != null)
209211
{
210-
border.Margin = GetItemMargin(sender);
212+
border.Margin = margin;
211213
}
212214
}
213215
}
@@ -230,18 +232,19 @@ private static void OnItemMinHeightPropertyChanged(DependencyObject sender, Depe
230232
private static void ItemMinHeightOnContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)
231233
{
232234
if (args.Phase > 0 || args.InRecycleQueue) return;
235+
var minHeight = GetItemMinHeight(sender);
233236
if (!IsApiContract13Present && ItemMarginProperty != null)
234237
{
235238
var margin = GetItemMargin(sender);
236239
double offsetMargin = margin.Top + margin.Bottom;
237240

238241
// If a margin is applied to the container, we have to subtract the vertical values
239242
// 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;
241244
}
242245
else
243246
{
244-
args.ItemContainer.MinHeight = GetItemMinHeight(sender);
247+
args.ItemContainer.MinHeight = minHeight;
245248
}
246249
}
247250

0 commit comments

Comments
 (0)