L'application WPF styles pour les Éléments Enfants
Permet de dire que j'ai une grille, à l'intérieur de ma grille, j'ai un certain nombre de contrôles. Au lieu de définir la marge pour chacun de ces contrôles, je souhaite créer un style pour définir la marge de TOUT contrôle je déposer sur une grille. Est-ce possible?
J'ai été en espérant que la suivante devrait fonctionner:
<Window.Resources>
<Style x:Key="DefaultMargins">
<Setter Property="Control.Margin" Value="3, 3, 3, 3"/>
<Setter Property="Control.FontSize" Value="50"/>
</Style>
</Window.Resources>
<Grid Style="{StaticResource DefaultMargins}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="3*"/>
<RowDefinition Height="3*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Grid.Column="0" Name="button1">Button</Button>
</Grid>
Mais la Marge est ignoré, il ne supportant pas la valeur de la propriété de l'héritage. Est-il une alternative simple à appliquer les marges pour chaque "enfant" de la grille? Je comprends qu'il est possible de réaliser ce genre de chose dans le CSS, et certains de nos développeurs sont intéressés par l'utilisation de ce type de construction.
Merci
Ian
OriginalL'auteur | 2009-09-23
Vous devez vous connecter pour publier un commentaire.
Vous pouvez spécifier le style, le type et le contraint à la portée de la
Grid
:ItemsControl.ItemContainerStyle
.J'ai essayé ton code, mais a été incapable de le faire fonctionner. Après pour aller plus loin, j'ai trouvé que WPF ne pas appliquer un style à un contrôle lors de ce style de TargetType propriété est définie pour que le contrôle de la classe de base. stackoverflow.com/questions/1026635/...
Cette habitude de travailler. Je ne poste pas de code que je n'ai pas de nourriture pour chien.
OriginalL'auteur Jordan
Ce qui semble répondre à une question similaire à la vôtre:
Appliquer un style à tous les TreeViewItem
Si cela ne fonctionne pas, alors je ne sais pas trop comment cela pourrait être fait dans le code XAML, mais vous pouvez ajouter le style dans le code-behind avec:
Edit: Grid1 se réfère à un x:Name="Grid1" propriété ajoutée à la grille XAML (une mauvaise appellation, je le sais).
OriginalL'auteur MLT
Placer les éléments à l'intérieur de
ItemsControl
avecItemsPanel
ensemble deGrid
etItemContainerStyle
à votre style:Cela a un inconvénient de ne pas bien fonctionner avec le créateur.
OriginalL'auteur Marcin Wisnicki