Skip to content

Commit 2d2a38a

Browse files
authored
Fixing referenced element for popup placement (#3344)
Possibly a fix for #3316
1 parent b8331d1 commit 2d2a38a

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

MaterialDesignThemes.Wpf/ComboBoxPopup.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ private CustomPopupPlacement[] ComboBoxCustomPopupPlacementCallback(
219219

220220
var visualAncestry = PlacementTarget.GetVisualAncestry().ToList();
221221

222-
var parent = visualAncestry.OfType<Panel>().ElementAt(1);
222+
var parent = visualAncestry.OfType<Panel>().First();
223223
VisiblePlacementWidth = TreeHelper.GetVisibleWidth((FrameworkElement)PlacementTarget, parent, FlowDirection);
224224

225225
var data = GetPositioningData(visualAncestry, popupSize, targetSize);
@@ -246,12 +246,10 @@ PositioningData GetPositioningData(IEnumerable<DependencyObject?> visualAncestry
246246
{
247247
var locationFromScreen = PlacementTarget.PointToScreen(new Point(0, 0));
248248

249-
var mainVisual = visualAncestry.OfType<Visual>().LastOrDefault();
250-
if (mainVisual is null) throw new ArgumentException($"{nameof(visualAncestry)} must contains at least one {nameof(Visual)} control inside.");
251-
252-
var controlVisual = visualAncestry.OfType<Visual>().FirstOrDefault();
253-
if (controlVisual == null) throw new ArgumentException($"{nameof(visualAncestry)} must contains at least one {nameof(Visual)} control inside.");
254-
249+
var mainVisual = visualAncestry.OfType<Visual>().LastOrDefault()
250+
?? throw new ArgumentException($"{nameof(visualAncestry)} must contains at least one {nameof(Visual)} control inside.");
251+
var controlVisual = visualAncestry.OfType<Visual>().FirstOrDefault()
252+
?? throw new ArgumentException($"{nameof(visualAncestry)} must contains at least one {nameof(Visual)} control inside.");
255253
var screen = Screen.FromPoint(locationFromScreen);
256254
var screenWidth = (int)screen.Bounds.Width;
257255
var screenHeight = (int)screen.Bounds.Height;

0 commit comments

Comments
 (0)