public class VisualCue : FrameworkElement
{
public List<Indicator> Indicators { get; set; }
public VisualCue()
{
this.Indicators = new List<Indicator>();
}
protected override int VisualChildrenCount
{
get { return this.Indicators.Count; }
}
protected override Visual GetVisualChild(int index)
{
return this.Indicators[index];
}
}
public class Indicator : FrameworkElement
{
protected override void OnRender(DrawingContext context)
{
context.DrawEllipse(Brushes.Red,
new Pen(Brushes.Black, 2), new Point(0, 0), 10, 10);
base.OnRender(context);
}
}
而在XAML中的FrameworkElement的:繪圖的FrameworkElement的
<local:VisualCue x:Name="visualCue">
<local:VisualCue.Indicators>
<local:Indicator />
</local:VisualCue.Indicators>
</local:VisualCue>
但是指示燈沒有拿得出。我錯過了什麼?
是的,值得檢查wpf中的渲染細節,如度量和安排步驟,如斯科特所說.. http://msdn.microsoft.com/en-us/library/ms745058.aspx – Charleh 2012-07-01 14:43:03