我正在编写 WPF 图表并使用 Visuals 来提高性能。代码如下:
public class DrawingCanvas2 : Canvas
{
private List<Visual> _visuals = new List<Visual>();
protected override Visual GetVisualChild( int index ) { return _visuals[index]; }
protected override int VisualChildrenCount { get { return _visuals.Count; } }
public void AddVisual( Visual visual )
{
_visuals.Add( visual );
base.AddVisualChild( visual );
base.AddLogicalChild( visual );
}
}
除了 DrawingVisual
元素(线条、文本)之外,我还需要图表中的 ComboBox
。所以我尝试了这个:
public DrawingCanvas2()
{
ComboBox box = new ComboBox();
AddVisual( box );
box.Width = 100;
box.Height = 30;
Canvas.SetLeft( box, 10 );
Canvas.SetTop( box, 10 );
}
但它不起作用,没有显示组合框。我缺少什么?
最佳答案
您是否考虑过将 ComboBox 与 DrawingCanvas2 一起放在容器 Panel 中,并按照 z 顺序放在 DrawingCanvas2 之上?
这样,您的 DrawingCanvas2 就可以专注于绘制视觉效果,而您的 ComboBox 将表现得开箱即用。
关于c# - 使用 Visuals 将 WPF 控件 (ComboBox) 放入 Canvas 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2405403/