Ensure element presence is checked prior to its use (#1715)

This commit is contained in:
Michał Janiszewski 2021-10-18 20:14:04 -07:00 committed by GitHub
parent 51ef7e18bd
commit 82c4c9a227
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -141,7 +141,7 @@ public void OnScrollButtonsPlacementPropertyChanged(OverflowButtonPlacement oldV
public void UpdateScrollButtons() public void UpdateScrollButtons()
{ {
if (m_expressionContainer == null || m_scrollLeft == null || m_scrollRight == null) if (m_expressionContent == null || m_expressionContainer == null || m_scrollLeft == null || m_scrollRight == null)
{ {
return; return;
} }
@ -306,9 +306,11 @@ private void ScrollLeft()
} }
private void ScrollRight() private void ScrollRight()
{
if (m_expressionContainer != null && m_expressionContent != null)
{ {
var realOffset = m_expressionContainer.HorizontalOffset + m_expressionContainer.Padding.Left + m_expressionContent.Margin.Left; var realOffset = m_expressionContainer.HorizontalOffset + m_expressionContainer.Padding.Left + m_expressionContent.Margin.Left;
if (m_expressionContainer != null && realOffset + m_expressionContainer.ActualWidth < m_expressionContent.ActualWidth) if (realOffset + m_expressionContainer.ActualWidth < m_expressionContent.ActualWidth)
{ {
double offset = m_expressionContainer.HorizontalOffset + (SCROLL_RATIO * m_expressionContainer.ViewportWidth); double offset = m_expressionContainer.HorizontalOffset + (SCROLL_RATIO * m_expressionContainer.ViewportWidth);
m_expressionContainer.ChangeView(offset, null, null); m_expressionContainer.ChangeView(offset, null, null);
@ -316,6 +318,7 @@ private void ScrollRight()
UpdateScrollButtons(); UpdateScrollButtons();
} }
} }
}
private const uint SCROLL_BUTTONS_APPROXIMATION_RANGE = 4; private const uint SCROLL_BUTTONS_APPROXIMATION_RANGE = 4;
private const double SCROLL_RATIO = 0.7; private const double SCROLL_RATIO = 0.7;