林不知道什麼是最好的辦法做到這一點,所以我最好問你。矩形圖
我需要實現這樣的圖形:
每個字段是對應於一個其他變量,應作相應着色。
最簡單的方法(不是最快):
創建的每一個在XAML單獨對象,並結合或處理
<Rectangle Name="rect0_0" Fill="White" Stroke="Black" StrokeThickness="1" RadiusX="1" RadiusY="10" Margin="12,250,354,12" />
或者類似於這樣做:
void InitializeRectangle()
{
aRectangle = new RectangleGeometry[MAX_CHANNELS];
for (int i = 0; i < aRectangle.Length; i++)
{
aRectangle[i] = new RectangleGeometry(new Rect(recX, recY, recWidth,recHeight));
GeometryGroup1.Children.Add(aRectangle[i]);
recX += recGab;
}
}
void PaintRectangle()
{
myPath1.Data = GeometryGroup1;
myPath1.Stroke = Brushes.Black;
myPath1.StrokeThickness = 1;
mySolidColorBrush.Color = Color.FromArgb(255, 204, 204, 255);
myPath1.Fill = mySolidColorBrush;
Canvas myCanvas = new Canvas();
myCanvas.Children.Add(myPath1);
this.Content = myCanvas;
}
,但我不能用這種方法分別着色它們。
如何爲每個矩形着色並在GUI中查看它?
或者您可以使用ItemContainer派生控件,並使用包含RectangleGeometry的DataTemplate並將屬性綁定到ViewModel中包含要顯示的數據(開始,結束,類別,顏色等)的項目列表 –
正確的術語是[ItemsControl](http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol(v = vs.110).aspx),並沒有必要從它派生出來。只需設置它的'ItemTemplate'和'ItemsPanel'屬性即可。 – Clemens