private void TweenMain_Resize(object sender, EventArgs e)
{
if (!_initialLayout && this._cfgCommon.MinimizeToTray && WindowState == FormWindowState.Minimized)
{
this.Visible = false;
}
if (_initialLayout && _cfgLocal != null && this.WindowState == FormWindowState.Normal && this.Visible)
{
// 現在の DPI と設定保存時の DPI との比を取得する
var configScaleFactor = this._cfgLocal.GetConfigScaleFactor(this.CurrentAutoScaleDimensions);
this.ClientSize = ScaleBy(configScaleFactor, _cfgLocal.FormSize);
//_mySize = this.ClientSize; //サイズ保持(最小化・最大化されたまま終了した場合の対応用)
this.DesktopLocation = _cfgLocal.FormLocation;
//_myLoc = this.DesktopLocation; //位置保持(最小化・最大化されたまま終了した場合の対応用)
// Splitterの位置設定
var splitterDistance = ScaleBy(configScaleFactor.Height, _cfgLocal.SplitterDistance);
if (splitterDistance > this.SplitContainer1.Panel1MinSize &&
splitterDistance < this.SplitContainer1.Height - this.SplitContainer1.Panel2MinSize - this.SplitContainer1.SplitterWidth)
{
this.SplitContainer1.SplitterDistance = splitterDistance;
}
//発言欄複数行
StatusText.Multiline = _cfgLocal.StatusMultiline;
if (StatusText.Multiline)
{
var statusTextHeight = ScaleBy(configScaleFactor.Height, _cfgLocal.StatusTextHeight);
int dis = SplitContainer2.Height - statusTextHeight - SplitContainer2.SplitterWidth;
if (dis > SplitContainer2.Panel1MinSize && dis < SplitContainer2.Height - SplitContainer2.Panel2MinSize - SplitContainer2.SplitterWidth)
{
SplitContainer2.SplitterDistance = SplitContainer2.Height - statusTextHeight - SplitContainer2.SplitterWidth;
}
StatusText.Height = statusTextHeight;
}
else
{
if (SplitContainer2.Height - SplitContainer2.Panel2MinSize - SplitContainer2.SplitterWidth > 0)
{
SplitContainer2.SplitterDistance = SplitContainer2.Height - SplitContainer2.Panel2MinSize - SplitContainer2.SplitterWidth;
}
}
var previewDistance = ScaleBy(configScaleFactor.Width, _cfgLocal.PreviewDistance);
if (previewDistance > this.SplitContainer3.Panel1MinSize && previewDistance < this.SplitContainer3.Width - this.SplitContainer3.Panel2MinSize - this.SplitContainer3.SplitterWidth)
{
this.SplitContainer3.SplitterDistance = previewDistance;
}
// Panel2Collapsed は SplitterDistance の設定を終えるまで true にしない
this.SplitContainer3.Panel2Collapsed = true;
_initialLayout = false;
}
if (this.WindowState != FormWindowState.Minimized)
{
_formWindowState = this.WindowState;
}
}