2012-07-18 3 views
0

Je suis tout nouveau à Silverlight et je suis dans la partie profonde un peu au-dessus de ma tête, donc je suis probablement manquant quelque chose de vraiment évident. Je travaille sur un éditeur d'image et j'ai un bouton sur ma page principale qui est supposé faire pivoter des images ou du texte sur ma toile. Le bouton n'appelle cependant pas ma méthode de rotation. EDIT: C'est maintenant.Silverlight bouton sur la page principale, liée à la commande, n'appelant jamais la méthode

est ici tout le code que j'ai écrit en rapport avec le bouton

MainPage.xaml

<Button Command="{Binding Path=Project.RotateCWElementCommand}"..../> 

Project.cs -

#region properties 

public ICommand RotateCWElementCommand { get; set; } 

#endregion 

#region methods 
public Project(int siteID) 
    { 
     this.RotateCWElementCommand = new DelegateCommand(RotateCWElement, CanRotateCWElement); 
    } 

    private void RotateCWElement(object param) 
    { 
     FrameworkElement element = this.SelectedElement; 
     RotateTransform cwRot = new RotateTransform(); 

     cwRot.Angle = 90; 
     cwRot.CenterX = element.ActualWidth * 0.5; 
     cwRot.CenterY = element.ActualHeight * 0.5; 
     element.RenderTransform = cwRot; 

    } 

#end region 

#region Command conditions 

private bool CanRotateCWElement(object param) 
    { 
     return true; 
    } 

#endregion 

Le problème est maintenant que ce ne tourne une fois et une certaine qualité d'image semble également être perdue. Les images se déplacent étrangement lorsque je les clique et les fais glisser, et parfois lorsque je clique sur la qualité d'image complète revient.

Si quelqu'un a des idées à ce sujet ce serait génial.

Répondre

1

Il semble que le Button.DataContext ne contient pas une propriété appelée Project.RotateCWElementCommand

Vérifiez que votre DataContext de bouton a une propriété appelée Project, et que Project a une propriété appelée RotateCWElementCommand

+0

Quelque chose de simple et évident c'était ce qu'il semblait. Déplacé dans un stackpanel avec un datacontext de projet et cela fonctionne. Merci pour l'aide. Des idées sur la rotation unique? Cela ne fonctionne que la première fois. – Steve

+0

@Steve La transformation est séparée de l'objet réel, de sorte que votre objet régulier est en train d'être dessiné, puis il est transformé à 90 degrés. Vous devrez probablement enregistrer l'angle actuel et l'ajuster de 90 degrés chaque fois que la commande Rotation est exécutée. – Rachel

0

La fenêtre de sortie dans Visual Studio peut être très utile pour trouver des problèmes avec vos liaisons dans Silverlight et aidera à clarifier si la suggestion de Rachel est le problème.

Questions connexes