如何保持用户控件的纵横比?
有谁知道如何保持 UserControl 的高/宽比 1:1 吗?
例如,如果高度>宽度,宽度和宽度高度将具有相同的尺寸,反之亦然。
Does anyone have an idea how to keep the Height/Width Ratio 1:1 of a UserControl?
E.g. if Height > Width, Width & Height will have the same size and vice versa.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我不确定这是否有效,但如果您为
SizeChanged
事件,并在其中放入代码,保持宽高比 1:1。SizeChangedEventArgs
参数有旧尺寸和新尺寸,以便您可以检查哪个尺寸已更改并相应更新另一个尺寸。您可能需要引入一个保护变量,这样您就不会因更新
Height
或Width
而导致级联SizeChanged
事件。I'm not sure this will work, but if you register a handler for the
SizeChanged
event and in there put in your code keep the aspect ratio 1:1.The
SizeChangedEventArgs
argument has the old size and the new size so you can check which has changed and update the other accordingly.You might need to introduce a guard variable so that you don't get a cascade of
SizeChanged
events as a result of updating theHeight
orWidth
.另一种选择:
Another alternative:
尝试使用 ViewBox 并将其 Stretch 属性设置为 Uniform
Try using a ViewBox and setting its Stretch property to Uniform
我使用此代码在用户控件内保持纵横比
全局定义 org_width、org_height、org_ratio :
在 SizeChanged 事件中的用户控件内使用此代码:
最后您的用户控件代码应如下所示:
祝你好运
i used this code for keeping aspect ratio
inside usercontrol globally define org_width, org_height, org_ratio :
use this code inside usercontrol in SizeChanged event:
and finally your user control code should looks like this:
good luck
也许这有帮助...干杯
maybe this helps... cheers