C# WPF ViewBox缩放/大小更改事件
我想检测C# WPF ViewBox缩放/大小更改事件,c#,.net,wpf,zooming,viewbox,C#,.net,Wpf,Zooming,Viewbox,我想检测ViewBox的缩放或大小的变化,以便在其内部的控件上应用一些自定义逻辑 可以吗?您可以订阅SizeChanged活动吗 <Viewbox SizeChanged="Viewbox_SizeChanged"> </Viewbox> 请尝试以下代码: private void Viewbox_SizeChanged(object sender, SizeChangedEventArgs e) { double initialWidth = 509.0;
ViewBox
的缩放或大小的变化,以便在其内部的控件上应用一些自定义逻辑
可以吗?您可以订阅SizeChanged活动吗
<Viewbox SizeChanged="Viewbox_SizeChanged">
</Viewbox>
请尝试以下代码:
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是初始窗口的宽度。每次调整窗口大小时,我都会计算新宽度和初始宽度之间的百分比。我想您需要订阅MouseLeftButtonUp来检测每个窗口大小调整的结束,这样您就可以保存新的宽度。确定。请您澄清一下,当ViewBox的大小发生变化时,SizeChanged事件是否与缩放变化有关。假设ViewBox的初始状态为100%,现在我们更改ViewBox的大小。我们可以使用SizeChanged事件来计算ViewBox缩放更改的百分比吗?@Dimi,试试看
e.PreviousSize.Height/e.NewSize.Height
mmmhhh,您需要在字段中保存初始大小的值。我添加了一个新的答案来发布一些代码
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();
}
}