Quelqu'un a-t-il trouvé des solutions intéressantes pour empêcher le déplacement d'une ChildWindow Silverlight?Silverlight - Empêcher le mouvement ChildWindow
merci, Mark
Quelqu'un a-t-il trouvé des solutions intéressantes pour empêcher le déplacement d'une ChildWindow Silverlight?Silverlight - Empêcher le mouvement ChildWindow
merci, Mark
Je ne suis pas sûr que vous appelez ça, mais ... propre
ImmovableChildWindow
.ChildWindow
.ImmoveableChildWindow
ImmovableChildWindow
. Copier et coller tout le style par défaut pour un ChildWindow de la documentation dans votre fichier themes/generic.xaml.TargetType
par cette copie à la même valeur que le style ImmovaleChildWindow
existant.ImmovableChildWindow
.Template
setter changer le TargetType
de la même valeur que le style TargetType
Border
avec le nom Chrome. Supprimez l'attribut x:Name="Chrome"
. (C'est ce que nous sommes vraiment après).Maintenant, lorsque vous créez un nouvel élément de ChildWindow il sera par la forme inherit par défaut ChildWindow
, si vous voulez qu'il soit immobile, vous devez modifier pour hériter de ImmovableChildWindow
à la place (changer le type de base dans le code-behind et la le nom de l'étiquette racine dans le xaml).
Le ChildWindow
attache des événements au FrameWorkElement
avec le nom "Chrome" qui permet de déplacer la fenêtre enfant. Cependant, étant donné qu'il s'agit d'un contrôle basé sur un modèle bien conçu, s'il ne peut pas trouver un FrameworkElement
appelé "Chrome", il continue à fonctionner sans cette fonctionnalité.
Vous pouvez peut-être essayer cette méthode simple: Créez une grille pour déformer tout le contenu de votre fenêtre ChildWindow.
<Grid Margin="0">
<!--Your ChildWindow. Canvas, Grid, Textblock...Whatever-->
</Grid>
Étant donné que la grille a une marge 0, vous ne pouvez pas cliquer dessus et la déplacer.
Non requis pour créer une nouvelle classe, au lieu
x:key="stylename"
Dans Construtor de Childwindow
, coller le code ci-dessous avant InitializeComponent
:
this.Style = App.Current.Resources["childWindow"] as Style;
ci-dessus solution résolu mon problème
Bonne réponse, Anthony! –