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()
{
if (m_expressionContainer == null || m_scrollLeft == null || m_scrollRight == null)
if (m_expressionContent == null || m_expressionContainer == null || m_scrollLeft == null || m_scrollRight == null)
{
return;
}
@ -306,9 +306,11 @@ private void ScrollLeft()
}
private void ScrollRight()
{
if (m_expressionContainer != null && m_expressionContent != null)
{
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);
m_expressionContainer.ChangeView(offset, null, null);
@ -316,6 +318,7 @@ private void ScrollRight()
UpdateScrollButtons();
}
}
}
private const uint SCROLL_BUTTONS_APPROXIMATION_RANGE = 4;
private const double SCROLL_RATIO = 0.7;