permet de dire que j'ai une grille, dans ma grille, j'ai un certain nombre de contrôles. Au lieu de définir la marge de chacun de ces commandes, je souhaite créer un style pour définir la marge de tout contrôle que je dépose dans une grille. Est-ce possible?
J'espérais que ce qui suit fonctionnerait: p> mais la marge est ignorée, elle ne supporte pas la valeur de la propriété héritage. Y a-t-il une alternative simple à appliquer les marges à chaque «enfant» de la grille? Je comprends qu'il est possible d'atteindre ce type de chose dans CSS et certains de nos développeurs souhaitent utiliser ce type de construction. P> merci
Ian p> p>
3 Réponses :
Cela semble répondre à une question similaire à la vôtre: Appliquer le style de tous les arbresViewItem
si cela ne fonctionne pas alors je suis Pas trop sûr de la façon dont il serait fait dans xaml, mais vous pouvez ajouter le style dans le code-derrière avec: p> éditer: grid1 fait référence à hache: nom = "Grid1 "Propriété ajoutée à la grille XAML (pauvre nommage que je connaisse). P> p>
Vous pouvez spécifier le style par type et le contraindre à la portée de la grille p> p> code>:
Cela s'appliquera également aux enfants des enfants et ainsi de suite. Consultez ma réponse ci-dessous pour une solution exacte à l'aide de itemsControl.itemcontainerStyle code>.
J'ai essayé votre code, mais je n'ai pas pu le faire fonctionner. Après avoir creusé plus profondément, j'ai trouvé que WPF n'applique pas de style à un contrôle lorsque la propriété TargetType de ce style est définie sur la classe de base de cette commande. Stackoverflow .com / questions / 1026635 / ...
Cela fonctionnait. Je ne poste pas de code que je ne fais pas de nourriture pour chiens.
Éléments d'endroit à l'intérieur ArticlesControl Code> avec
ÉlémentsPanel Code> défini sur
Grid code> et
itemContainerStyle code> à votre style:
<Window.Resources>
<Style x:Key="DefaultMargins">
<Setter Property="Control.Margin"
Value="3, 3, 3, 3" />
<Setter Property="Control.FontSize"
Value="50" />
</Style>
</Window.Resources>
<ItemsControl ItemContainerStyle="{StaticResource DefaultMargins}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="3*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="3*" />
<RowDefinition Height="3*" />
</Grid.RowDefinitions>
</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<Button Grid.Row="0"
Grid.Column="0"
Name="button1">Button</Button>
</ItemsControl>
Cela semble être exactement ce que je cherchais. Si je reviens plus tard, essayez-le et cela fonctionne, alors je vais uppoter.
Avez-vous trouvé une réponse à cela? Je demande parce que j'ai le même problème.