【发布时间】:2012-02-02 07:04:28
【问题描述】:
我需要在装饰器和装饰控件之间传递一些参数。
如何做到这一点?每次参数更改时,我是否应该删除并添加带有新参数的新装饰器?
比如我的一个参数:
public static readonly DependencyProperty ThetaProperty =
DependencyProperty.Register("Theta", typeof (double), typeof (SplitControl), new PropertyMetadata(default(double), SetTheta));
public double Theta
{
get { return (double) GetValue(ThetaProperty); }
set { SetValue(ThetaProperty, value); }
}
private static void SetTheta(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
_adorner.Theta = (double) e.NewValue;
}
在装饰器 Theta 中:
public double Theta
{
get
{
return (Math.Atan(((_middleTop - _middleBottom) / AdornedElement.DesiredSize.Height))) * 180 / Math.PI;
}
set
{
double deltaX = (Math.Tan((Math.PI/180)*value))*(AdornedElement.DesiredSize.Height/2);
_middleTop = _middle + deltaX;
_middleBottom = _middle - deltaX;
}
}
【问题讨论】:
-
你想传递什么样的参数,你能举例说明一下吗?由于您有对装饰 UIElement 的引用,因此您应该能够从中访问最相关的信息。
标签: c# wpf parameter-passing adorner