Bonjour,
Tout d'abord, je débute en silverlight et j'ai un peu de mal à trouver mes repères.
Je dois créer un contrôle silverlight qui serait facilement surchargeable. Je m'explique, l'utilisateur implementant ce contrôles dans sont page.xaml devrait pouvoir modifier les attributs de cette façon :
Et dans ce cas la couleur d'arrière plan serait changer par celle spécifié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Local:SlideView Name="SlideCtrl" Background="Aqua" />
Voici le code de mon contrôle :
J'ai lu sur le net que beaucoup faisait cela en surchargeant la méthode onApplyTemplate() et en utilisant un fichier de "ressourceDictionnary" (generic.xaml), mais je souhaiterais éviter de devoir passer par le code behind pour modifier les valeurs des Attributs.
Code : 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
28
29
30
31
32
33
34
35
36
37
38
39
40 <UserControl x:Class="SilverlightApp.SlideView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="300" Height="auto" HorizontalAlignment="Right"> <Canvas Width="300" Height="auto" RenderTransformOrigin="0.5,0.5" x:Name="SlidePanel" HorizontalAlignment="Right" Opacity="0"> <Canvas.Resources> <Storyboard x:Name="SlideExpand"> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="SlidePanel" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)"> <SplineDoubleKeyFrame KeyTime="00:00:00" Value="300"/> <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="0"/> </DoubleAnimationUsingKeyFrames> </Storyboard> <Storyboard x:Name="SlideCollapse"> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="SlidePanel" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)"> <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/> <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="300"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </Canvas.Resources> <Canvas.RenderTransform> <TransformGroup> <ScaleTransform ScaleX="1" ScaleY="1"/> <SkewTransform AngleX="0" AngleY="0"/> <RotateTransform Angle="0"/> <TranslateTransform X="0" Y="0"/> </TransformGroup> </Canvas.RenderTransform> </Canvas> </UserControl>
Si quelqu'un pouvait m'aider ou même m'aiguiller j'en serais ravi.
Merci
Partager