Hallo, ich hänge schon eine ganze Weile an einem Problem und hoffe ihr könnt mir helfen.
Ich würde gern Visu-Elemente in z-Richtung stapeln. Als ein Visu-Element würde ich gern ein FrameworkElement
(beispielsweise Path
) welches als Resource definiert ist mit verschiedenen Transformationen versehen und anzeigen.
Die Klasse mit den Informationen für jedes Element sieht so aus:
public class XamlItem
{
public string ResourceName { get; set; }
public int Rotation { get; set; }
public int TranslationX { get; set; }
public int TranslationY { get; set; }
}
2 Sachen habe ich bisher versucht:
<ItemsControl
ItemsSource="{Binding Cell.XamlItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label
Content="{Binding Converter={StaticResource converter}}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Jedoch wird hier das das FrameworkElement (obwohl wie gesagt als Resource definiert) nur einmal dargestellt?! Sollte es nicht so sein das Resourcen mehrfach verwendet werden können?
<ContentPresenter Content="{Binding Cell}" ContentTemplateSelector="{StaticResource templateSelector}"
Ich bekomme es jedoch in der SelectTemplate
- Methode nicht hin die Resourcen zu dem DataTemplate im Code hinzuzufügen:
DataTemplate dt = new DataTemplate();
FrameworkElement element = ((Control)obj).TryFindResource(xamlItem.ResourceName) as FrameworkElement;
RotateTransform rt = new RotateTransform(xamlItem.Rotation);
element.RenderTransform = rt;
Tja und wie jetzt weiter? Ich vermute mal über die FrameworkElementFactory
aber iregndwie bekomme ich das Element nicht hinzugefügt (ich hoffe ja das die Resource in diesem Fall mehrfach verwendet werden kann).
Kann mir jemand weiterhelfen? Oder gibt es noch eine bessere Lösung?
Danke fürs Durchlesen 😉
Um Rekursion zu verstehen, muss man erst mal Rekursion verstehen, muss man erst mal Rekursion verstehen, ....