0
我有一個RenderChart
方法encaspsulated在UserControl
後面的代碼,這將有望在地圖上繪製一些圖表。我簡單的方法,試圖得到一些文本渲染,但沒有成功:簡單的DrawingContext不繪製到UI
private void RenderChart()
{
DrawingVisual newVisual = new DrawingVisual();
using (DrawingContext dc = newVisual.RenderOpen())
{
Rect rect = new Rect(new Point(160, 100), new System.Windows.Size(320, 80));
dc.DrawRectangle(Brushes.Maroon, (Pen)null, rect);
dc.Close();
}
if (this.visual != null)
{
this.RemoveVisualChild(this.visual);
}
this.AddVisualChild(newVisual);
this.visual = newVisual;
this.RefreshMargin();
}
每當我畫簡單的形狀等我使用例如myCanvas.Children.Add(myEllipse);
逸岸之前,如果我定義了一個橢圓&像上面那樣將其添加到畫布上,而不使用DrawingContext我得到我期望的結果。
我是否需要將繪圖上下文添加到我的控件中的面板,還是有其他一些原因,爲什麼不會在UI中呈現?
而不是創建一個新的DrawingVisual,您可能會重寫UserControl的OnRender方法。 – Clemens
編輯問題代碼。這個類是從FrameworkElement繼承的UserControl,所以不知道爲什麼我沒有獲得UI輸出。我將這個newVisual添加爲VisualChild ... – Hardgraf