J'ai essayé de convertir le code XAML suivant en C#, mais sans succès. Je suis un peu coincé à la partie ControlTemplate. Je suis très nouveau à WPF, donc je peux faire tout faux. L'idée sous-jacente est que je dois extraire des données d'une base de données et envelopper chaque enregistrement avec le modèle ci-dessous. Étant donné que les lignes peuvent varier dans le montant que je veux générer chaque modèle en utilisant le code C#.Code XAML en C#
Je n'ai pas encore défini tous les attributs de contrôle.
<Grid>
<Button Content="Button" Height="30" Name="button1" Margin="8,8,7,8" Click="button1_Click" >
<Button.Template>
<ControlTemplate>
<Rectangle RadiusX="5" RadiusY="5" Stroke="LightYellow" StrokeThickness="0.5" Name="myRectangle">
<Rectangle.Fill>
<VisualBrush Opacity="0.7">
<VisualBrush.Visual>
<TextBlock Name="myTextBlock" Foreground="LightYellow" Background="DarkBlue" Text="Text here" />
</VisualBrush.Visual>
</VisualBrush>
</Rectangle.Fill>
</Rectangle>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
Mon code C# jusqu'à présent:
Grid grid = new Grid();
Button button = new Button();
ControlTemplate controlTemplate = new ControlTemplate();
Rectangle rectangle = new Rectangle();
VisualBrush visualBrush = new VisualBrush();
TextBlock textBlock = new TextBlock();
textBlock.Text = "Text here";
textBlock.Background = new SolidColorBrush(Color.FromRgb(2, 33, 233));
visualBrush.Visual = textBlock;
visualBrush.Opacity = 0.7;
rectangle.Fill = visualBrush;
controlTemplate //What to do here?
button.Template = controlTemplate;
button.Content = "Button";
button.Height = 30;
button.Width = 100;
grid.Children.Add(button);
this.Content = grid;
Merci à l'avance,
Grant
Vous pourriez vouloir repenser cette idée :-). Utilisez plutôt votre XAML dans un DataTemplate et appliquez-le à un ListBox ou ItemsControl avec vos lignes de base de données en tant que ItemsSource. Le faire par code C# codé à la main est comme construire une vraie maison en utilisant des briques LEGO :-) – Goblin
Beau commentaire (+1). Presque je me sens mal pour traduire le xaml à coder derrière :-) –
Merci, j'ai décidé de travailler sur l'idée de Goblin. Et ça a bien marché! – Supercell