如何保持UserControl的宽高比?

Jos*_*nel 2 c# wpf user-controls aspect-ratio

有没有人知道如何保持UserControl的高度/宽度比1:1?

例如,如果"高度">"宽度","宽度"和"高度"具有相同的大小,反之亦然.

Chr*_*isF 7

我不确定这会起作用,但是如果你为SizeChanged事件注册了一个处理程序,那么在你的代码中保留宽高比为1:1.

SizeChangedEventArgs参数有旧的尺寸和新的大小,以便您可以检查哪些已经改变,相应地更新等.

您可能需要引入一个保护变量,以便SizeChanged在更新Height或更新时不会获得级联事件Width.


cor*_*erm 5

尝试使用 ViewBox 并将其 Stretch 属性设置为 Uniform


hel*_*ker 5

另一种选择:

<local:MyControl Width="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"/>
Run Code Online (Sandbox Code Playgroud)