为了简单起见:我有一个由2个矩形组成的用户控件。在设计时,控件的用户设置用户控件的宽度和用户控件属性的其中一个矩形的默认值。我想将默认值作为百分比,并将其中一个矩形的宽度设置为其他矩形宽度的百分比。我遇到的困难是我无法获得外部矩形的宽度来设置其他矩形宽度的百分比(因为一切似乎都是0或NaN)。下面是一些代码:如何根据用户控件上的属性设置来设置用户控件中元素的大小?
用户控制:
<Grid x:Name="LayoutRoot" Background="White">
<Rectangle x:Name="OuterRectangle" Fill="Red"/>
<Rectangle x:Name="InnerRectangle" Fill="Blue"/>
</Grid>
用户控件后台代码:
public partial class ucRectangles : UserControl
{
public Double Percent { get; set; }
public ucRectangles()
{
InitializeComponent();
InnerRectangle.Width = Percent/100 * OuterRectangle.ActualWidth;
}
}
主页:
<Grid x:Name="LayoutRoot" VerticalAlignment="Center">
<local:ucRectangles Width="400" Height="40" Percent="50"/>
</Grid>
好吧,这工作,但我只需要它来运行一次,在启动时,而不是每次浏览器调整大小或(无论其他)我是否在处理程序本身中分离处理程序。这是好的做法吗?有什么影响吗? – descf 2011-03-31 19:07:54
这很合理,并且没有任何影响。只需删除处理程序。 – 2011-03-31 19:09:20