Bonjour,
Dans une interface en XAML, je fais appel à un template que j'ai défini dans un ressourceDictionnary. Si je l'appelle une fois, tout va bien, mais dès que j'ai deux boutons qui appellent le même template, l'application lance une exception de parsage du XAML au numéro de ligne et colonne correspondant à l'appel du Template dans le deuxième bouton.
Le pire, c'est que quand je créer deux templates identiques en changeant juste le nom (ex en mettant un 2 à la fin) dans mon ressourceDictionnary et que mon deuxième bouton appelle le deuxième template, ça marche.
J'aimerai vraiment comprendre parce que je vois pas l'intérêt de créer une feuille de style si je dois faire un copier coller à chaque fois que je veux l'utiliser.
Voici le code du template :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <ControlTemplate TargetType="{x:Type Button}" x:Key="btnreinit"> <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> <Rectangle VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="bgrect" Fill="{StaticResource RectBrush}" /> <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,0" RecognizesAccessKey="True" /> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsPressed" Value="False"> <Setter TargetName="bgrect" Property="Effect" Value="{StaticResource pressedEffect}"/> <Setter TargetName="bgrect" Property="Fill" Value="{StaticResource PressedRectBrush}"/> </Trigger> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Content"> <Setter.Value> <Image MaxWidth="25" MaxHeight="25" Source="res/reinit2.png" /> </Setter.Value> </Setter> </Trigger> <Trigger Property="IsMouseOver" Value="False"> <Setter Property="Content"> <Setter.Value> <Image MaxWidth="25" MaxHeight="25" Source="res/reinit1.png" /> </Setter.Value> </Setter> </Trigger> </ControlTemplate.Triggers> </ControlTemplate>
et voici l'appel :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <Grid.Resources> <ResourceDictionary x:Name="Style"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="StyleBtn.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Grid.Resources> ... <StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center"> <Button Name="btnreinitcltr" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="1" Template="{StaticResource btnreinit}" /> </StackPanel> .... <StackPanel Grid.Row="2" Grid.Column="3" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center"> <Button Name="btnreinitmerge" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="1" Template="{StaticResource btnreinit}" /> </StackPanel>
Si quelqu'un a une idée?
Partager