您的位置:首页 > 娱乐 > 八卦 > 知识付费分销平台有哪些_上海人才网官网_网站流量分析_seo网站优化培训怎么样

知识付费分销平台有哪些_上海人才网官网_网站流量分析_seo网站优化培训怎么样

2025/4/19 16:54:06 来源:https://blog.csdn.net/weixin_53545579/article/details/147162904  浏览:    关键词:知识付费分销平台有哪些_上海人才网官网_网站流量分析_seo网站优化培训怎么样
知识付费分销平台有哪些_上海人才网官网_网站流量分析_seo网站优化培训怎么样
public class ScaleBehavior : Behavior<FrameworkElement>
{protected override void OnAttached(){base.OnAttached();AssociatedObject.MouseWheel += AssociatedObject_MouseWheel;}private void AssociatedObject_MouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e){//首次滚动时,判断RenderTransform的类型是否为ScaleTransformif (!(AssociatedObject.RenderTransform is ScaleTransform)){AssociatedObject.RenderTransform = new ScaleTransform(){CenterX = AssociatedObject.ActualWidth / 2,CenterY = AssociatedObject.ActualHeight / 2,};}var transform = AssociatedObject.RenderTransform as ScaleTransform;double scale = e.Delta * 0.001;transform.ScaleX += scale;transform.ScaleY += scale;}protected override void OnDetaching(){base.OnDetaching();AssociatedObject.MouseWheel -= AssociatedObject_MouseWheel;}        
}
public class ScaleBehavior : Behavior<FrameworkElement>
{// 当行为附加到元素时注册鼠标滚轮事件 protected override void OnAttached(){base.OnAttached();AssociatedObject.MouseWheel += AssociatedObject_MouseWheel;// [!] 未校验父容器尺寸变化(ActualWidth/Height可能动态更新)}// 鼠标滚轮事件处理:动态缩放元素 private void AssociatedObject_MouseWheel(object sender, MouseWheelEventArgs e){// 首次滚动时强制创建缩放变换(可能覆盖原有变换链)if (!(AssociatedObject.RenderTransform is ScaleTransform)){AssociatedObject.RenderTransform = new ScaleTransform(){// 设置缩放中心为元素几何中心 CenterX = AssociatedObject.ActualWidth / 2, // [!] 未监听ActualWidth变化 CenterY = AssociatedObject.ActualHeight / 2 };}var transform = AssociatedObject.RenderTransform as ScaleTransform;// 计算缩放增量(Delta=120为滚轮单位,固定0.001系数)double scale = e.Delta * 0.001; // [!] 未提供缩放速度可配置化 // 同步修改X/Y轴缩放比例(可能导致非等比缩放)transform.ScaleX += scale; // [!] 无最小/最大值限制 transform.ScaleY += scale;}// 行为分离时解除事件绑定 protected override void OnDetaching(){base.OnDetaching();AssociatedObject.MouseWheel -= AssociatedObject_MouseWheel;// [!] 未还原RenderTransform原始状态 }
}
graph TD A[行为附加到元素] --> B[注册MouseWheel事件]B --> C{用户滚动鼠标滚轮}C -->|首次滚动| D[创建ScaleTransform并设置中心点]C -->|非首次| E[获取现有ScaleTransform]D --> F[计算缩放增量]E --> F F --> G[更新ScaleX/ScaleY值]H[行为分离] --> I[解除事件绑定]classDef risk fill:#FFF3E0,stroke:#FFA726;class D,G risk style F stroke:#4CAF50,stroke-width:2px 

2. 增强版代码示例

// 支持动画与变换组合的改进实现 
public class EnhancedScaleBehavior : Behavior<FrameworkElement>
{protected override void OnAttached(){// 初始化组合变换(保留原有变换)if (AssociatedObject.RenderTransform is not TransformGroup){AssociatedObject.RenderTransform = new TransformGroup {Children = { new ScaleTransform(), new RotateTransform() }};}// 监听尺寸变化更新缩放中心 AssociatedObject.SizeChanged += (s, e) => (AssociatedObject.RenderTransform as TransformGroup).Children.OfType<ScaleTransform>().First().CenterX = e.NewSize.Width / 2;}private void AnimateScale(double delta){var scaleTransform = (AssociatedObject.RenderTransform as TransformGroup).Children.OfType<ScaleTransform>().First();//

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com