private void MultilinePanelContent_OnSizeChanged(object sender, SizeChangedEventArgs e)
{
const double decreaseMultiplyer = 0.95;
const double increaseMultiplyer = 1.05;
var decreaseOffset = ActualFontSize * 1.0;
var increaseOffset = ActualFontSize*2.2;
if (_lastContainerAdded)
{
if (MultilinePanelContent.ActualHeight > ScrollViewerContent.ActualHeight - decreaseOffset)
{
if (ActualFontSize > MinFontSize)
{
ActualFontSize *= decreaseMultiplyer;
UpdateFontSize();
}
else
{
ScrollViewerContent.ScrollToVerticalOffset(100000);
}
}
}
else
{
if (MultilinePanelContent.ActualHeight < ScrollViewerContent.ActualHeight - increaseOffset)
{
if (ActualFontSize < MaxFontSize)
{
ActualFontSize *= increaseMultiplyer;
UpdateFontSize();
}
}
}
}