我想要实现这样一个效果:
创建一个宽400, 高300的窗口, 窗口边框拖拽放大缩小的时候, 宽和高永远是按照4:3的比例放大缩小的.
可以在事件中设置窗口的长宽, 但是否有更好的办法, 比如设置Converter之类的, 让Width属性依赖在Height上等等?
有好办法啊 新建一个类 俩属性 一个width 一个height 类继承INotifyPropertyChanged, 然后将窗口的长宽绑定这两个属性 mode=twoway 在width的set里面同时也给height赋值:height=0.75*width 很简单
好方法!
我也在研究这个问题,你试试这个代码
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;
}
}