WPF ViewBox zoom/size 更改事件

WPF ViewBox zoom/size changed event

我想检测 ViewBox 的缩放或大小的变化,以便我可以在其中的控件上应用一些自定义逻辑。

可以吗?

您可以订阅 SizeChanged 事件吗?

<Viewbox SizeChanged="Viewbox_SizeChanged">

</Viewbox>

在后面的代码中,您只需输入:

private void Viewbox_SizeChanged(object sender, SizeChangedEventArgs e)
{

}

试试这个代码:

private void Viewbox_SizeChanged(object sender, SizeChangedEventArgs e)
{
    double initialWidth = 509.0;

    if (e.PreviousSize.Width > 0)
    {
        var factor = e.NewSize.Width / initialWidth;
        this.Title = (factor * 100).ToString();
    }
}

值509.0是我初始Window的宽度。每次调整 window 的大小时,我都会计算新宽度和初始宽度之间的百分比。我想您需要订阅 MouseLeftButtonUp 来检测每次 window 调整大小的结束,这样您就可以保存新的宽度。