gpt4 book ai didi

wpf - 依赖属性中的静态与非静态内容有问题......我什至应该使用 DPs 吗?

转载 作者:行者123 更新时间:2023-12-01 11:07:59 25 4
gpt4 key购买 nike

所以我有一个我制作的仪表,可以在顺时针或逆时针方向上设置动画。每隔一段时间,新数据就会进入我设置的两个依赖属性。当这些属性中的数据发生变化时,我想对这两个值进行一些计算以确定仪表指针将旋转的方向(以及旋转的幅度)。

我已经让旋转代码正常工作,我编写了一个函数(全部使用 C#),它获取旋转的开始角度、结束角度和持续时间。旋转功能有效,我可以输入值并观察指针旋转。

我不知道该怎么做,就是在任何一个依赖属性发生变化时调用这个动画函数。将我的旋转函数设置为静态是不合适的,因为旋转调用最终可能会特定于实例。

换句话说,我想实现的是PropertyChanged->计算新的位置/速度->构建 Storyboard并运行动画。

我之所以使用依赖属性而不是标准属性,是因为它们被绑定(bind)到 xaml 的控制之外。

谢谢!

        private void AnimatePointer(double startAngle, double endAngle, TimeSpan length, string pointerName)
{
DoubleAnimation handRotation = new DoubleAnimation();
handRotation.From = startAngle;
handRotation.To = endAngle;
handRotation.Duration = new Duration(length);
Storyboard.SetTargetName(handRotation, pointerName);

DependencyProperty[] propertyChain =
new DependencyProperty[]
{
Rectangle.RenderTransformProperty,
TransformGroup.ChildrenProperty,
RotateTransform.AngleProperty
};

string anglePath = "(0).(1)[1].(2)";
PropertyPath propPath = new PropertyPath(anglePath, propertyChain);
Storyboard.SetTargetProperty(handRotation, propPath);

Storyboard sb = new Storyboard();
sb.Children.Add(handRotation);
sb.Begin(this);
}

最佳答案

我太傻了,忽略了一个事实,即所有静态回调方法的第一个参数都是调用该方法的实例。只需将它转换为您的类型,然后就可以通过它访问属性。

关于wpf - 依赖属性中的静态与非静态内容有问题......我什至应该使用 DPs 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3375763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com