2010-12-07 24 views
4

J'ai ce problème étrange où chaque fois que j'ouvre un fichier XAML qui contient une grille avec un GridSplitter à l'intérieur, et le concepteur XAML fonctionne, il veut ajouter la propriété HorizontalAlignment au GridSplitter et définissez sa valeur à "Stretch".VS2010 WPF concepteur ajoute automatiquement HorizontalAlignment = "Stretch" à gridsplitter

Si je mets VS2010 à ne pas utiliser le concepteur, la propriété n'est pas ajoutée et le code reste le même. Bien que je n'utilise pas le concepteur tout le temps, il est agréable d'utiliser si nécessaire. Cependant, en allant chez le concepteur, il fera automatiquement le changement non désiré à chaque fois. Cela force le fichier à être extrait de la source de sécurité et est juste un gros désordre.

Quelqu'un at-il déjà rencontré cette situation? Cela semble très étrange et spécifique, mais je ne trouve personne d'autre en ligne qui se plaint du même scénario.

+0

Je suis vraiment confus quant à ce qui cause cela comme je pensais avec certitude au moins une personne ici aurait rencontré le même problème. Mais rien. – Ristogod

Répondre

4

La classe GridSplitterDesignModeValueProvider est celle qui modifie la valeur. DesignModeValueProvider permet d'injecter une logique personnalisée lors de la conception d'un contrôle. Ceci est cuit dans l'expérience de conception de Visual Studio. Il n'y a pas de moyen facile d'empêcher ce fournisseur de fonctionnalités d'être appelé, au moins sans supprimer l'expérience de conception de tous les contrôles WPF natifs.

Si vous ne définissez pas HorizontalAlignment, vous pouvez le définir sur "Right", qui est sa valeur par défaut. Cela devrait empêcher le GridSplitterDesignModeValueProvider de le changer.