| 

.NET C# Java Javascript Exception

3
Hallo,

ich habe ein Problem mit der Erstellung von zusammengesetzten Shapes in WPF!
Ich will einmal ein Kegel mit einem Kreis in WPF erstellen und dann zur Laufzeit mehrere
davon einfügen!
Hier der XAML-Code zur Shape:
<Canvas HorizontalAlignment="Left" Width="47" Height="71">
<Polygon Points="25 0 10 43 40 43" Stroke="Black" Fill="Orange" Height="45" Canvas.Left="0" Canvas.Bottom="0" Width="47"></Polygon>
<Ellipse Height="20" Width="20" Stroke="Black" Fill="Black" Canvas.Bottom="45" Canvas.Left="15"></Ellipse>
</Canvas>


Beispiel:
Beim Drücken eines Buttons soll auf einer Übergeordnete Canvas das oben erstellte eingefügt werden.(Bei jedem Klick kommt ein neues Element dazu)
Aber ich will nicht immer wieder den XAML-Code schreiben sondern den einmal erstellten
wiederverwenden!

Ich habe etwas über Styles und Templates gelesen, nur weiss ich nicht wie ich das alles auf
diesen Fall anwende!

Kann mir da einer helfen?
News:
19.08.2011
Gast
33 1 3
1 Antwort
2
Zum Beispiel so (es geht sicher noch einfacher)
<Window.Resources>
<ControlTemplate x:Key="FigureTemplate">
<Canvas HorizontalAlignment="Left" Width="47" Height="71">
<Polygon Points="25 0 10 43 40 43" Stroke="Black" Fill="Orange" Height="45" Canvas.Left="0" Canvas.Bottom="0" Width="47"/>
<Ellipse Height="20" Width="20" Stroke="Black" Fill="Black" Canvas.Bottom="45" Canvas.Left="15"/>
</Canvas>
</ControlTemplate>
<Style x:Key="CanvasStyle" TargetType="{x:Type UserControl}">
<Setter Property="Template" Value="{StaticResource FigureTemplate}"/>
</Style>
</Window.Resources>
<DockPanel LastChildFill="True" >
<Button Click="Button_Click" Content="Add" DockPanel.Dock="Top"/>
<WrapPanel x:Name="panel"/>
</DockPanel>

und im Click Event der Code Behind Datei
private void Button_Click(object sender, RoutedEventArgs e)
{
var f = new UserControl();
f.Template = (ControlTemplate)FindResource("FigureTemplate");
panel.Children.Add(f);
}

Der Einfachheit halber (keine Positionierung auf übergeordnetem Canvas) wurde hier ein WrapPanel verwendet
19.08.2011
me 1,1k 2 9
1
Danke hat super Funktioniert!
Warum braucht man das Style Element? Wird doch im Code garnicht benutzt?
– Gast 19.08.2011
Stimmt, hatte zuvor noch mit einem Element ohne Template Eigenschaft experimentiert
me 19.08.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH