解像度の変更で片方の値を変更するとそれに合わせてもう片方の値もアスペクト比に従って変更する方法が知りたい。

提示コードですが以下のif文の中でX,yどちらかの値が変わったらそれに合わせてアスペクト比を維持たままもう片方の値を変えたいのですが以下のように実装したいのですがうまく実装できません、これはどうやるのでしょうか?

cs

private void textBoxWidth_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { FileData data = mainForm.getSelectFileData(); float aspect = data.getHeight() / data.getWidth(); //アスペクト比 if (checkBoxLookAspect.CheckState == CheckState.Checked) { int width = data.getWidth() - int.Parse(textBoxWidth.Text); data.setHeight(data.getHeight() - width); textBoxHeight.Text = data.getHeight().ToString(); } else { int width = int.Parse(textBoxWidth.Text); data.setWidth(width); textBoxWidth.Text = data.getWidth().ToString(); } } private void textBoxHeight_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { FileData data = mainForm.getSelectFileData(); float aspect = data.getHeight() / data.getWidth(); //アスペクト比 if (checkBoxLookAspect.CheckState == CheckState.Checked) { int height = data.getHeight() - int.Parse(textBoxHeight.Text); data.setWidth(data.getWidth() - height); textBoxWidth.Text = data.getWidth().ToString(); } else { int height = int.Parse(textBoxHeight.Text); data.setHeight(height); textBoxHeight.Text = data.getHeight().ToString(); } }

コメントを投稿

0 コメント