Hallo zusammen,
ich bin kurz vor dem austicken.... und bevor ich gleich platze frage ich nun doch mal nach 😃
eigentlich ist die sache nicht wirklich schwer.. denke ich zumindest:
Ich will eigentlich nur Die Kinder die im Cnavas angezeigt werden mit Binding realisieren, aufgrund der Vorgabe muss ich das leider so machen, also Kinder halt über Properties zuweisen... es geht einfach nicht...
hier mal ein schnipsel mit der Property:
xmal:
Canvas Grid.Row="1" Margin="0,0,1,0" Background="Transparent">
<Canvas.Children>
<!-- Was soll hier hin? <Children>? wenn ja, geht nicht schon versucht -->
</Canvas.Children>
</Canvas>
cs property:
public Line Children
{
get
{
return _Child;
}
set
{
_Child = value;
FirePropertyChanged("Children");
}
}
grüße newbie
Hallo Newbie83,
dem Element Children kannst du alle Elemente zuordnen. Es können z.b. 1 oder mehrere Buttons zugeordnet werden, jedoch auch Labels, oder auch gemischt. Wie du sicherlich weißt ich Canvas eine möglichkeit das Layout der GUI zu gestalten. Wobei ich ehrlich zugeben muss habe ich noch nie das Canvas in WPF benutzt. m.e. ist das Grid mächtiger und angenehmer zu arbeiten. Denn beim Canvas muss man die Children mit exacter Point-Angabe positionieren.
Gruß,
Michael
hallo Michael,
Das mit der Positionierung weiß ich, ich Rahmen meines Projekts muss ich das aber leider auch so machen. Ich habe das Problem, wie du dem code entnehmen kannst, dass die Objekte, die linien, die ich dem canvas hinzufügen will einfach nicht angezeigt werden es tut sich nichts. Wenn ich nen breakpoint setze dann springt er nicht mal rein
Hallo Newbie83,
wenn man dazu das Canvas direkt verwendet hat man ein Problem (aber das hast du ja schon festgestellt 😃 )
Verwende besser ein ItemsControl und ein ItemsPanelTemplate
Beispiel:
<ItemsControl ItemsSource="{Binding MyCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Hier noch ein Link dazu: ItemsControl A to Z
Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 6
Gruss
Michael
Du kannst nicht einfach ein Property Child machen und hoffen dass dir der WPF reinspringt, das ist nicht der Fall. das Canvas hat ja schon ein Property Child. Diesem Child musst du weitere Elemente hinzufügen.
<Canvas Name ="canvasLine">
<Button/>
<Label/>
<Line/>
</Canvas>
oder in C#
canvasName.Child.Add(new Button());
canvasName.Child.Add(new Label());
canvasName.Child.Add(new Line());