首页 新闻 会员 周边 捐助

WPF窗口的宽高按一定比例进行扩缩

0
悬赏园豆:5 [已解决问题] 解决于 2012-11-28 17:03

我想要实现这样一个效果:

创建一个宽400, 高300的窗口, 窗口边框拖拽放大缩小的时候, 宽和高永远是按照4:3的比例放大缩小的.

可以在事件中设置窗口的长宽, 但是否有更好的办法, 比如设置Converter之类的, 让Width属性依赖在Height上等等?

WPF
陈惊蛰的主页 陈惊蛰 | 初学一级 | 园豆:150
提问于:2012-10-24 09:30
< >
分享
最佳答案
0

有好办法啊 新建一个类 俩属性 一个width 一个height 类继承INotifyPropertyChanged, 然后将窗口的长宽绑定这两个属性 mode=twoway 在width的set里面同时也给height赋值:height=0.75*width 很简单

收获园豆:5
While蹒跚学步... | 初学一级 |园豆:59 | 2012-11-27 21:28

好方法!

陈惊蛰 | 园豆:150 (初学一级) | 2012-11-28 17:03
其他回答(1)
0

我也在研究这个问题,你试试这个代码

private void Window_SizeChanged_1(object sender, SizeChangedEventArgs e)
{
double preWidth = e.PreviousSize.Width;
double preHeight = e.PreviousSize.Height;

double curWidth = e.NewSize.Width;
double curHeight = e.NewSize.Height;

double ABS = curWidth / curHeight - 1.713;



if (this.Height != LastHeight)
{
if (curHeight >= preHeight)
{
this.Width = curHeight * 1.713;
}
else if (curHeight < preHeight)
{
this.Width = curHeight * 1.713;
}
LastHeight = (int)this.Height;
LastWidth = (int)this.Width;
}
else
{
if (curWidth >= preWidth)
{
this.Height = curWidth / 1.713;
}
else if (curWidth < preWidth)
{
this.Height = curWidth / 1.713;
}
LastHeight = (int)this.Height;
LastWidth = (int)this.Width;
}
}

吴豪 | 园豆:202 (菜鸟二级) | 2012-10-25 10:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册